addEventListener不在节点上工作

时间:2014-11-20 14:53:48

标签: javascript addeventlistener nodelist

我有这个简单的javascript代码。

 var nodeList = document.getElementById(active_tab_selector.attr('id')).getElementsByTagName('span');
for (var i = 0, node; node = nodeList[i]; i++) {
node.addEventListener('click', function() {getChild(this.getAttribute(attribute));
                        }, false);
}

但是click由于某种原因它不起作用,但是如果我删除getElementById(active_tab_selector.attr('id'))它就可以了。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

for循环为每个节点迭代x次,但只有最后一个节点对回调有效 然后通过为特定

中的节点调用addEventListener的方法更改它
for (var i = 0, node; node = nodeList[i]; i++) {
  addEventTo( node );
}

function addEventTo( node ) {
  node.addEventListener( 'click', function () {
    getChild(this.getAttribute(attribute));
  }, false);
}

有关此here

的详细信息