【发布时间】:2009-11-14 16:34:22
【问题描述】:
我有 100 个 ID 为 divNum0,...,divNum99 的元素。每次单击时都应使用正确的参数调用doTask。
不幸的是,下面的代码没有关闭 i,因此 doTask 被调用,所有元素都是 100。
function doTask(x) {alert(x);}
for (var i=0; i<100; ++i) {
document.getElementById('divNum'+i).addEventListener('click',function() {doTask(i);},false);
}
有没有办法让函数调用正确的参数?
【问题讨论】:
-
如果您不需要添加多个事件监听器,您应该分配给
onclick,因为这适用于跨浏览器 -
我还建议考虑使用事件委托并将点击处理程序放在父元素中。当点击事件触发时,您只需检查目标并执行所需的功能。
标签: javascript loops greasemonkey closures