我想循环一个简单的数组,找到基于数组值的元素,然后为每个元素添加一个单击事件。出于某种原因(可能与范围有关?),所有事件都认为它们在数组的末尾。如何遍历数组并添加jQuery点击事件?
示例HTML:
<!-- "Sectors" -->
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>
相应的JavaScript:
var sectorArray = ["a", "b", "c"];
// Loop over sector letters
for (var s in sectorArray) {
var sector = sectorArray[s];
console.log("Adding click event for sector: " + sector);
$('div.' + sector).on("click", function(e){
console.log("Clicked sector: " + sector);
});
}
当我点击任何一个DIV,我得到的是我对行业的 “C” 的消息。这里是一个jsfiddle:http://jsfiddle.net/luken/Pd66m/
我能够解决这个问题,使for-loop内的所有东西都进入它自己的独立功能......还有其他解决方案......但我想弄清楚为什么这在上面不起作用。谢谢。
真的不应该用'for..in'阵列上。 –
^为什么不@JamesMontagne? – Luke
@Luke迭代次序不保证。 继承的属性也被枚举。坏juju。 – Alex