[英]How can i remove an event listener from multiple elements in JavaScript?
[英]How can I assign a listener to all elements witihin a javascript array of elements?
基本上,我想知道的是我该怎么做,基本上可以像这样工作:
document.getElementsByClassName('particle')[all].addEventListener('mouseover', Jump, false);
我已经尝试过使用for循环,它冻结了浏览器:
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
document.getElementsByClassName('particle')[i].addEventListener('mouseover', Jump, false);
}
为什么没有用? 我该怎么做才能达到这种效果?
我也尝试过:
document.getElementsByClassName('particle')[0,1,2,3,4].addEventListener('mouseover', Jump, false);
但是,那也不起作用。 。 。 它仅适用于第一个和最后一个元素,而不适用于任何其他元素。
for
循环是正确的方法。
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
应该
for (var i=0; i<document.getElementsByClassName('particle').length; i+=1) {
另外,如果只查询一次DOM,效率会更高:
var particles = document.getElementsByClassName('particle');
for (var i=0; i<particles.length; i+=1) {
particles[i].addEventListener('mouseover', Jump, false);
}
更新:
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
应该
for(var i=0; i < document.getElementsByClassName('particle').length; i++){
^ ^ ^
第一个错误:由于我以0开头,因此应使用<
而不是<=
Seconde错误: ,
应为;
第三个错误: i
应该在循环中重新分配值,因此它应该是i++
而不是i+1
并且请注意,getElementsByClassName()在IE8及更高版本中不可用 。
确保您的浏览器支持此方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.