[英]JQuery-Need help understanding (i, el)
我在理解這段代碼時遇到了麻煩。
var win = $(window);
var allMods = $(".module");
// Already visible modules
allMods.each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("already-visible");
}
});
win.scroll(function(event) {
allMods.each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("come-in");
}
});
});
我了解到,當滾動窗口時,代碼的下半部分將運行,並且allMods.each塊都是循環,這些循環使用“模塊”類遍歷所有元素。
我不明白三件事:
.each函數是否不應該將數組或對象以及回調函數作為參數? 在這里,它只是一個功能。
不。您將其作為jQuery對象的方法調用。 它就是那個循環的對象。 內部each
用this
來確定。
為什么將“ i”和“ el”作為參數傳遞給函數。 我猜“ el”是指當前元素被迭代,但是為什么他們稱其為“ el”。 您可以將所有“ el”替換為其他名稱嗎? 我不知道“ i”是什么。
您可以為函數參數使用任何您喜歡的名稱,它對調用它時傳遞給它的值沒有影響。 確定這是調用函數的責任(即each
函數的內部)。 each
文檔的文檔中都描述了傳遞給它們的值。
Type: Function( Integer index, Element element )
第一個參數是jQuery對象中的索引。 第二個參數是該索引值的元素。
上半部分的代碼何時開始運行? 它不在win.scroll事件中。
同時,不在函數內的任何其他代碼也將運行。 腳本加載到文檔中時。
$().each()
在jQuery對象(元素集合$().each()
運行,並且僅將函數作為參數。 i
是索引(從0開始),而el
是元素本身。 是的,您也可以自由更改名稱,只要您也更改函數內部的引用即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.