JS:element.addEventListener动态创建的元素

时间:2015-11-18 13:29:19

标签: javascript for-loop javascript-events

我在向动态创建的元素添加事件监听器时遇到了一些麻烦。

我有一个对象列表,代表玩家所玩的匹配。还有一个循环遍历它们,为每个匹配创建4个按钮,一个+ 1,一个+ 2,一个-1和一个END按钮。< / p>

但是,即使它们已经很好地创建,并且附加在它们应该的位置,也不会保留事件侦听器。以下是我的代码示例:

var container = document.getElementById('container');
for (var i = 0; i < matches.length; i++) {
    var row = document.createElement("div");
    row.className = "row";

    var plusOne = document.createElement("a");
    plusOne.id = "plusone_ " + matches[i].id;
    plusOne.addEventListener('click', function () {
        alert('Clicked on plusOne!')
    });

    ...
    // adding plus two, minus one and END the same way
    // however, END does have an eventListener on click

    row.appendChild(plusOne);

    container.appendChild(row);

}

如果有人知道为什么?

0 个答案:

没有答案