簡體   English   中英

將自定義變量傳遞給匿名jQuery單擊功能

[英]Pass custom variable to anonymous jQuery click function

我想在click事件上傳遞foreach循環的當前迭代,但它返回“undefined” - 但為什么呢?

for (var i = 0; i < __ARR_selectors.length; i++) {
    __ARR_selectors[i].click( function(e, i) {
        console.log(i); //returns undefined
}

嘗試這個:

for (var i = 0; i < __ARR_selectors.length; i++) {
    (function (i) {
        __ARR_selectors[i].click( function() {
            console.log(i); //returns undefined
        });
    })(i);
}

你的代碼的問題是i為循環的每次迭代更新了變量,因此click事件被綁定到i擁有的最后一個值。

要解決這個問題,請創建一個匿名函數,該函數接受i的參數,該參數可以繞過javascript閉包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM