处理特定情况,其中有多个元素具有内联onclick
事件触发器,这些元素还传递需要通过addEventListener
预处理并且原始onClick
已删除的变量,最好是removeAttribute
,而不是setAttribute("onclick", null)
。
<div onClick="alert('shoe');">shoe</div>
<div onClick="alert('epic');">epic</div>
<div onClick="alert('dogs');">dogs</div>
<div onClick="alert('army');">army</div>
为了重用和对他人有用 - 上面的例子被简化了,但是不需要处理IE attachEvent
或detachEvent
并且jQuery不可用(至少对我来说)。< / p>
我尝试了几种方法,我的初始试用代码如下所示:
var fields = document.getElementsByTagName("div");
for (var i = 0; i < fields.length; i++) {
word = fields[i].getAttribute("onClick").substr(7,4);
fields[i].addEventListener("click", function() {console.log(word);}, false);
fields[i].removeAttribute("onclick");
}
在大多数派生方法中我都要设法删除onclick
但是无法分配事件监听器,可以填充单词数组,但只能填充最后一个单词,等等。