[英]Cannot add event listener to array elements
I want to add mouseover
event to every link with linkLink
class with JS. 我想将
mouseover
事件添加到带有JS的linkLink
类的每个链接中。 Console gives an error - Cannot read property style of undefined
. 控制台给出错误-
Cannot read property style of undefined
。 Whenever I set index manualy like - l[0].addEventListener(...)
it works fine, but not with variable i
. 每当我手动设置索引,例如
l[0].addEventListener(...)
它都可以正常工作,但不适用于变量i
。 Any help? 有什么帮助吗?
var l = document.getElementsByClassName('linkLink');
for (var i = 0; i < l.length; i++) {
l[i].addEventListener("mouseover", function() { l[i].style.backgroundColor = "black"; });
if ((i % 2) === 0) l[i].style.color = "crimson";
else l[i].style.color = "gold";
}
<a class="linkLink" href="#">link I</a><br>
<a class="linkLink" href="#">link II</a><br>
<a class="linkLink" href="#">link III</a><br>
Use this
instead of li[i]
in the handler function. 在处理程序函数中使用
this
代替li[i]
。
var l = document.getElementsByClassName('linkLink'); for (var i = 0; i < l.length; i++) { l[i].addEventListener("mouseover", function() { this.style.backgroundColor = "black"; }); //return back to original background color on mouseleave. l[i].addEventListener("mouseleave", function() { this.style.backgroundColor = "white"; }); if ((i % 2) === 0) l[i].style.color = "crimson"; else l[i].style.color = "gold"; };
<a class="linkLink" href="#">link I</a><br> <a class="linkLink" href="#">link II</a><br> <a class="linkLink" href="#">link III</a><br>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.