2011-09-02 98 views
0

這是一個jQuery書籍中通過圖像旋轉的示例代碼。除了說函數(i)的部分之外,我對它的大部分理解。 (i)作爲參數傳遞什麼價值?當(i)被減去numberOfPhotos時,究竟是什麼值被減去?函數(i)在這個jQuery代碼中意味着什麼?

$(document).ready(function(){ 
    rotatePics(1); 
}); 

function rotatePics(currentPhoto) { 
    var numberOfPhotos = $('#photos img').length; 
    currentPhoto = currentPhoto % numberOfPhotos; 

    $('#photos img').eq(currentPhoto).fadeOut(function() { 

    $('#photos img').each(function(i) { 
     $(this).css(
     'zIndex', ((numberOfPhotos - i) + currentPhoto) % numberOfPhotos 
    ); 
    }); 
    $(this).show(); 
    setTimeout(function() {rotatePics(++currentPhoto);}, 4000); 
    }); 
} 

回答

5

.each函數調用傳遞函數(function(i) {...這裏),並把反過來兩個變量到功能:

  • 首先是指數
  • 第二是價值

因此,i是這裏的索引,因爲它是第一個參數。較高的i,較低的zIndex(這是公式歸結爲的)。因此,圖像將從後臺的最後一個顯示到前一個的第一個圖像,因爲較高的zIndex表示該元素將顯示在較低的zIndex元素的前面。

所以,更高的i,更低的zIndex,它將被推到更多的背景。

+0

我明白了,謝謝! – catandmouse

0

這是您循環瀏覽的項目列表的索引。我是非常常見的變量名稱。

3

'i'是當前項目數組中的索引。

從jQuery的 '每個' 文檔 -

回調(indexInArray,valueOfElement),其將每一個對象上執行 的功能。

當調用「每個」,你可以通過任何aruments -

$('#photos img').each(function() 

但是,如果你選擇來傳遞參數 -

$('#photos img').each(function(index,val) 

然後jQuery將填充每個參數與價值'each'循環中每個函數調用的相關值。