好吧,我正在构建一个应用程序(适用于 Chrome(*不是扩展)),并且页面上有一堆重复的元素。所以我决定使用循环动态构建这些元素,如下所示:
for(var i = 1; i <= 64; i++){
var elem = document.createElement('div');
elem.id = "element"+i;
elem.onclick = "doSomething()"
$("parentElement").appendChild(elem);
}
当它尝试将我的函数附加到 onclick 事件时,就会出现问题。当我查看该元素时,它没有 onclick 属性...即使当我单步执行时,我也可以到达该行:
elem.onclick = "doSomething()"
然后我再次迈出一步,什么也没有......到目前为止,我已经尝试过带引号和不带引号以及 .onclick 和 .onClick ...
提前谢谢您!
最佳答案
您应该始终传递函数本身,而不是任何类型的字符串。
elem.onclick = doSomething;
这会将 doSomething
设置为点击处理程序。
- 使用字符串将在内部调用
eval
,这很慢并且可能不安全(后者不适用于此处)。 - 直接传递函数更加直接。
- 仅当您通过 HTML 设置
onclick
时才需要字符串。
关于javascript - Chrome "onclick"事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248716/