Weston C <west8on[at]cann8central.RemoveEights.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.getElementById(fieldId);[/color]
[color=blue]
> codeSnippet = "clockUpdate(" + fieldId + ")";[/color]
So, fieldId is a string. Say it is the string "foobar". Then your
codeSnippet becomes the string
"clockUpdate(foobar)"
Here, foobar is not a string, but a variable name, because the quotes
are missing. Try:
codeSnippet = "clockUpdate(\""+fieldId+"\");";
[color=blue]
> setInterval(clockUpdate(fieldId),1000);[/color]
Here, you call the clockUpdate function right now, and try evaluating
the result of that in one second. Try:
setInterval(function(){clockUpdate(fieldId);},1000 );
or use the above codeSnippet with:[color=blue]
> //setInterval(codeSnippet,1000);[/color]
[color=blue]
> //setInterval("eval(\"" + 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/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'