2011-11-26 73 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。 ':)' –