2012-10-21 19 views
1

我試圖在此循環的每次迭代期間訪問元素索引。jquery each()自我傳遞時的索引

$('.slide').hide().repeat().each($).fadeIn($).wait(1000, function(){ 
    //do stuff 
}).wait(noHover).fadeOut($); 

我試着做喜歡的事:

$('.slide').hide().repeat().each(i, $).fadeIn($).wait(1000, function(){ 
    alert(i); 
}).wait(noHover).fadeOut($); 

顯然,我不明白這樣做的正確方法。使用

插件擴展IM:
http://creativecouple.github.com/jquery-timing/examples/pause-cycle-on-hover.html

繼承人小提琴,打破下來更好:
http://jsfiddle.net/zGd8a/

A液:
http://jsfiddle.net/zGd8a/8/

+1

爲什麼你傳遞'$'? – SLaks

+0

@SLaks查看上面的URL以獲取詳細信息。插件邏輯文檔的一部分。 –

+1

每個接受回調函數。你打算做什麼? –

回答

2

jsFiddle demo

$('.slide').hide().repeat().each($).fadeIn($).wait(1000, function(){ 
    var idx = $(this).index(); // here you go! 
    $('body').append(idx); //here i need access to index number of element 
}).wait(noHover).fadeOut($); 
+0

這個作品,這是非常棒的。只是想知道 - 爲什麼索引方法需要被調用?有沒有一種方法來通過類似於每個(索引,obj)的參數實例化元素的索引而不使用方法? –

+0

@DanKanze http://jsfiddle.net/zGd8a/3/用我的一個插件...([FadeMe'FPS'](http://roxon.in/scripts/fademe_jquery_plugin/)) –

+0

這看起來像它的去做這項工作。將此功能綁定到「幻燈片按鈕」時,我只是有點抓住了。 ive將你的代碼加入到我的課程中,以更好地展示我正在嘗試做的事情。 http://jsfiddle.net/pvvx6/ –

0

在這種情況下each功能需要第二個參數(回調功能) - $並確實沒有與它。您應該將警報置於第二個參數each的回調函數體中,而不是wait函數。就像這樣:

$('.slide').hide().repeat().each(function(i, element) { 
    alert(i); 
}).fadeIn($).wait(1000, function(){ 
    //do stuff 
}).wait(noHover).fadeOut($); 

點擊此處瞭解詳情:http://api.jquery.com/each/

+0

對不起隊友,但這似乎並沒有工作。 –

+0

沒錯,我把你的問題描述寫錯了... – roomcays