微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

请参阅click()函数中的旧迭代器值以获取javascript / jQuery(闭包问题)

我正试图让“click()”函数在我传入函数显示“i”的值.但它在完成之后又回到了’i’的价值.我在第一次传递函数时,如何让函数引用’i’的值,这是空白的.

for( var i=0; i<10; i++){
 var ts = $('#<span></span>').clone().click(function(){
  alert(i);
 });
}

注意:

‘#’不应该存在,’.clone()’也不应该存在

解决方法:

这样的东西会起作用:

for(var i=0; i<10; i++){
  (function(j) {
    var ts = $('<span></span>').click(function(){
        alert(j);
    });
  })(i);
}

You can give it a try here.尽管如此,你的创作有点过时,我不确定你为什么要创建一个新的元素来克隆它,而且还有一个额外的#在那里….我删除了上述两个,但是它不会影响内部函数解决方案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐