0
var li = document.querySelectorAll('li');
for (var i = 0 ; i < 11 ; i ++){
        li[i].addEventListener('mouseover', function () {
            li[i].style.backgroundColor = 'white';
            console.log(i);
        });
    }

clipboard.png

希望的效果是鼠标经过标签的时候改变颜色
通过addevenlistener添加mouseover实现
但是现在的效果是不管鼠标经过哪个li
consolelog输出的都是11 也就是只有最后一个变颜色

萌货 109
2017-07-19 提问

查看全部 11 个回答

0

感觉天天都有人在问这个问题,看看这里吧
https://segmentfault.com/a/11...

推荐答案

0

已采纳

其实写成这样就好了吧:

var li = document.querySelectorAll('li');
for (var i = 0 ; i < 11 ; i ++){
    li[i].onmouseover = function () {
        this.style.backgroundColor = 'white';
    };
}

(虽然知道是闭包题,但是能解决问题不就得了么。。)

你可能感兴趣的

推广链接