0

处理具有内联事件触发器的许多元素的特定情况,这些元素onclick还传递一个需要预处理的变量,通过删除addEventListener原始的,最好是通过而不是。onClickremoveAttributesetAttribute("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或者detachEventjQuery 不可用(至少对我来说)。

我尝试了几种方法,我的初始试用代码如下所示:

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但无法分配事件侦听器,要么可以填充单词数组,但只能使用最后一个单词等等。

4

0 回答 0