javascript - Chrome "onclick"事件问题

标签 javascript html dom google-chrome

好吧,我正在构建一个应用程序(适用于 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/

相关文章:

javascript - 对 HTML 或文本设置使用延迟不起作用

javascript - HTML/CSS - 无论文本内容如何,​​所有文本元素都是 23 像素宽

html - css 生成箭头的框阴影

dom - html列表值因按键事件而改变

asp.net - IE8 标准模式 JQuery 不逻辑

javascript - 如何实现jQuery Ajax调用的Kendo进度条?

javascript - 返回 false 不停止表单提交

javascript - iframe中内容提交后需要跳出iframe

html - ie6中的页面长度问题

javascript - 如何触发 Span 元素以填充输入字段中输入的值 (Javascript)