【发布时间】:2014-04-22 05:38:46
【问题描述】:
我一直在用 vanilla 代码而不是 jQuery 重写我的 Chrome 扩展程序,而且大部分情况下它很容易。我曾经遇到过无法按预期工作的部分。
基于 jQuery 的原始代码:
$(".content .flair").click(function(){
//Irelevant code using "this"
});
新的纯香草代码:
var flairs = document.querySelectorAll(".content .flair");
for (var i = 0; i < flairs.length; i++){
flairs[i].addEventListener("click", function(event){
//Irrelevant code using flairs[i]
});
}
普通代码的问题是每次点击 .content .flair 元素总是使用来自 flairs 中最后一个元素的信息(即 flairs[flairs.length - 1] 而不是使用 flairs[i]。
我就是无法解决这个错误!
感谢您的宝贵时间。
【问题讨论】:
-
@ArunPJohny 我很惊讶为什么会这样?嗯,在 for 循环之外声明 var 怎么样?
标签: javascript jquery javascript-events