[英]JavaScript closure el.addEventListener is not a function
<div id="a">ONE</div>
<div id="b">TWO</div>
<div id="c">THREE</div>
var el = document.getElementsByTagName("div");
for ( var i = 0; i < el.length; i++ ) (function(){
el.addEventListener("click",function(){
console.log(this.id + " " + this.innerHTML);
},false);
})(i);
Gives me error "el.addEventListener is not a function", what is the problem? 给我错误“el.addEventListener不是函数”,有什么问题?
el
是一个HTMLCollection ,你忘了使用索引:
el[i].addEventListener("click",function(){...};
You're missing [i]
(index) in your code (it must be el[i]
), thought addEventListener
doesn't work in IE versions. 您在代码中缺少
[i]
(索引)(它必须是el[i]
),认为addEventListener
在IE版本中不起作用。 To fix this problem you can do something like this: 要解决此问题,您可以执行以下操作:
function evt(elem,type,fn) { // element, event type, function
if ( elem.addEventListener ) {
elem.addEventListener(type,fn,false);
} else {
elem.attachEvent("on" + fn);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.