繁体   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