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.
>
>

Reply via email to