处理具有内联事件触发器的许多元素的特定情况,这些元素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>
为了重用和对其他人有用 - 上面的例子被简化了但是不需要处理 IEattachEvent
或者detachEvent
jQuery 不可用(至少对我来说)。
我尝试了几种方法,我的初始试用代码如下所示:
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
但无法分配事件侦听器,要么可以填充单词数组,但只能使用最后一个单词等等。