javascript - onclick的removeAttribute和循环中的addEventListener

时间:2013-07-29 20:19:07

标签: javascript for-loop closures addeventlistener

处理特定情况,其中有多个元素具有内联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 attachEventdetachEvent并且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但是无法分配事件监听器,可以填充单词数组,但只能填充最后一个单词,等等。

0 个答案:

没有答案