Trouble using setTimeout/setInterval

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Weston C

    Trouble using setTimeout/setInterval

    In the course of trying to build a simple clock, I've run into a problem
    using the setInterval (and setTimeout) function.




    function fieldToClock(fi eldId)
    {
    var field = document.getEle mentById(fieldI d);
    alert("Starting a clock in text field " + fieldId + "(" + field
    + ")");
    codeSnippet = "clockUpdat e(" + fieldId + ")";
    setInterval(clo ckUpdate(fieldI d),1000);
    //setInterval(cod eSnippet,1000);
    //setInterval("ev al(\"" + codeSnippet + "\")",1000) ;
    }

    function clockUpdate(fie ldId)
    {
    field = document.getEle mentById(fieldI d);
    field.value = date2timestr(ne w Date());
    }

    The problem line is the setInterval line, and it seems to have something
    to do with the fact I want to pass the function clockUpdate an argument
    (I don't want to specify a single text element to be associated with the
    display of the clock. Ideally, I'd like to be able to call the function
    "fieldToClo ck" with the id of any text field in the document and turn it
    into a clock).

    The two commented out lines are other approaches I've applied. The first
    approach yields the error:

    Error: useless setInterval call (missing quotes around argument?)
    Source File: http://weston.canncentral.org/misc/tkeep/tkeep.jss
    Line: 6

    The second/third approach yeild:

    Error: clock_STF is not defined
    Source File: http://weston.canncentral.org/misc/tkeep/tkeep.jss
    Line: 7

    Except this error is repeated every 1000 seconds. :)

    Any ideas?

    Thanks,

    Weston





    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
  • Lasse Reichstein Nielsen

    #2
    Re: Trouble using setTimeout/setInterval

    Weston C <west8on[at]cann8central.Re moveEights.org> writes:
    [color=blue]
    > In the course of trying to build a simple clock, I've run into a problem
    > using the setInterval (and setTimeout) function.[/color]
    [color=blue]
    > var field = document.getEle mentById(fieldI d);[/color]
    [color=blue]
    > codeSnippet = "clockUpdat e(" + fieldId + ")";[/color]

    So, fieldId is a string. Say it is the string "foobar". Then your
    codeSnippet becomes the string
    "clockUpdate(fo obar)"
    Here, foobar is not a string, but a variable name, because the quotes
    are missing. Try:
    codeSnippet = "clockUpdate(\" "+fieldId+"\"); ";
    [color=blue]
    > setInterval(clo ckUpdate(fieldI d),1000);[/color]

    Here, you call the clockUpdate function right now, and try evaluating
    the result of that in one second. Try:
    setInterval(fun ction(){clockUp date(fieldId);} ,1000);
    or use the above codeSnippet with:[color=blue]
    > //setInterval(cod eSnippet,1000);[/color]
    [color=blue]
    > //setInterval("ev al(\"" + codeSnippet + "\")",1000) ;[/color]

    Don't use eval. Don't ever use eval (the exceptions are so rare that
    you'll probably never hit them).


    [color=blue]
    > The two commented out lines are other approaches I've applied. The first
    > approach yields the error:
    >
    > Error: useless setInterval call (missing quotes around argument?)
    > Source File: http://weston.canncentral.org/misc/tkeep/tkeep.jss
    > Line: 6[/color]

    Yes, the return value of clockUpdate is undefined. It is useless to
    delay "undefined" for one second.
    [color=blue]
    > The second/third approach yeild:
    >
    > Error: clock_STF is not defined
    > Source File: http://weston.canncentral.org/misc/tkeep/tkeep.jss
    > Line: 7[/color]

    Ah, the content of your string is "clock_STF" . As I said above, it
    is now seen without its quotes, as a variable, and there is no
    variable defined by that name.

    /l
    --
    Lasse Reichstein Nielsen - lrn@hotpop.com
    DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleD OM.html>
    'Faith without judgement merely degrades the spirit divine.'

    Comment

    Working...