【发布时间】:2012-01-26 12:54:14
【问题描述】:
我正在循环遍历一个 Javascript 数组,通过 ID 将事件附加到元素。我可以看到添加了正确的事件,但是,当我点击链接触发事件时,它们都显示“链接6”被点击,而不是我想要的!
下面是一个说明问题的sn-p。
如果能解释为什么会发生这种情况,以及我应该如何编码来克服这个问题,我将不胜感激。我猜这与分配的动态值有关,但我最初的想法是这似乎不符合逻辑!
<html>
<body>
<p id='link1'>Link 1</p>
<p id='link2'>Link 2</p>
<p id='link3'>Link 3</p>
<p id='link4'>Link 4</p>
<p id='link5'>Link 5</p>
<p id='link6'>Link 6</p>
<script type='text/javascript'>
var sections = new Array('link1', 'link2', 'link3', 'link4', 'link5', 'link6');
for (var section in sections) {
console.log('Attaching event to ' + sections[section] );
document.getElementById(sections[section]).addEventListener('click', function(e){ alert('click '+sections[section]); });
}
</script>
</body>
【问题讨论】:
标签: javascript