Avoid 'this'. In the setTimeout() callback, 'this' is the window object! Instead you can do:
$('ul.News li').each(function( i, element ) { curTimeInterval += timeInterval; //alert(element.id); works here setTimeout(function() { UpdateNews(element.id); }, curTimeInterval); }); -Mike On Thu, Nov 5, 2009 at 2:58 PM, vmrao <maheshpav...@gmail.com> wrote: > > OK. This is what I am trying to do. > > $('ul.News li').each(function() { > curTimeInterval += timeInterval; > //alert(this.id); works here > setTimeout(function() { > UpdateNews(this.id); //How to get this.id to work > here ? > }, curTimeInterval); > }); > > > On Nov 5, 5:42 pm, vmrao <maheshpav...@gmail.com> wrote: > > My code is as follows. How to call onMouseOver of 'li' element in the > > loop from jQuery ? > > > > <script> > > $(document).ready(function(){ > > var curTimeInterval = 0; > > var timeInterval = 2000 ; > > $('ul.News li').each(function() { > > curTimeInterval += timeInterval; > > setTimeout(function() { > > //I would like to invoke onMouseOver of the li element > here > > //I tried $(this).mouseover(); and it > > did not work > > }, curTimeInterval); > > }); > > }); > > </script> > > > > <ul class="News"> > > <li id="Story1" onMouseOver="UpdateNews('Story1')">My Stroy1</li> > > <li id="Story2" onMouseOver="UpdateNews('Story2)">My Stroy2</li> > > <li id="Story3" onMouseOver="UpdateNews('Story3')">My Stroy3</li> > > </ul> >