Nice catch, Mike. I've completely overlooked that issue and only focused on getting the setTimeout to execute something. :)
On Oct 6, 10:00 am, Michael Geary <m...@mg.to> wrote: > Good tip, but don't use the string version: > > setTimeout("e.show(200);", 1000); > > Use the function version: > > setTimeout(function() { > e.show(200); > > }, 1000); > > When you pass a string to setTimeout() or setInterval(), the code is > executed in the *global context*. > > If the code is inside a function and the variable 'e' is local to that > function, the string version won't work. e will be undefined. > > The function version uses a closure to give the timeout function access to > local variables in the calling function. > > -Mike > > On Tue, Oct 6, 2009 at 12:02 PM, James <james.gp....@gmail.com> wrote: > > > setTimeout(e.show(200), 1000); > > > should be: > > > setTimeout("e.show(200);", 1000); > > > or: > > > setTimeout(function() { > > e.show(200); > > }, 1000); > > > (line-end semi-colon not necessary, but should be used for good > > practice) > > > On Oct 6, 7:57 am, Dennis Madsen <den...@demaweb.dk> wrote: > > > I'm trying to create new DOM and append it to a div. When the div is > > > appended, I would like it to be shown after 1sec. > > > > var e = "<div style='display:none;'>content</div>"; > > > $("#container").append(e); > > > setTimeout(e.show(200), 1000); > > > > This code does not work. The HTML is appended but the show-function > > > does not work. Hope someone can help me. > >