2011-11-26 29 views
0

下面的代码应该触发鼠标enter()和mouseleave()每个发现集合中的每个元素,每个元素之间有2000 ms的间隔。暂停不起作用,直到最后。设置超时函数和每个函数的冲突

$(window).load(function(){ 
    var delayslide = 0; 
    $(".featuredslider a").each(function(){ 
     var current = $(this).index(); 
     window.setTimeout(function(){ 
      $(".featuredslider a").mouseleave(); 
      $('.featuredslider a:eq(' + current + ')').mouseenter(); 
      delayslide += 2000; 
     }, delayslide); 
    }); 

}); 

回答

-1

在这里你去:

var elems = $('a', '.featuredslider').get(), 
    i = -1; 

(function loop() { 
    $(elems[i]).mouseleave(); 
    i += 1; 
    $(elems[i]).mouseenter(); 

    if (i < elems.length) { setTimeout(loop, 2000); } 
})(); 

现场演示:http://jsfiddle.net/G9VNj/

+0

你真的不应该命名匿名函数,而且,还有一个更好的方法...让我写出... – ivans

+0

@ivans为什么不呢? –

+0

@ivans Oho,Zagrepčanin。 ':)' –