在循环中添加“点击”事件监听器[重复]
将onClick
html标记中的标准重构为侦听器,我的代码面临问题:
var td; for (var t=1;t<8;t++){
td = document.getElementById('td'+t);
if (typeof window.addEventListener==='function'){
td.addEventListener('click',function(){
console.log(td);
})}
}
当td
单击元素时,假定单击的td
是循环中的最后一个索引,例如7
Lookslike,eventListeners
仅填充了此循环中的最后一个元素,循环初始化看起来正确,为什么会这样呢?
回答:
您需要将事件侦听器的分配包装在闭包中,例如:
var td;for (var t = 1; t < 8; t++){
td = document.getElementById('td'+t);
if (typeof window.addEventListener === 'function'){
(function (_td) {
td.addEventListener('click', function(){
console.log(_td);
});
})(td);
}
}
以上是 在循环中添加“点击”事件监听器[重复] 的全部内容, 来源链接: utcz.com/qa/416332.html