jQuery如何循环添加事件【遍历?】

$('.box1').mouseover(function () {

        $('.box1 .prev').css('display', 'block');

        $('.box1 .next').css('display', 'block');

    }).mouseout(function () {

        $('.box1 .next').css('display', 'none');

        $('.box1 .prev').css('display', 'none');

    });

如上代码所示,想要给box1,box2,box3,box4

4个目标添加事件,除了复制改名还有什么办法。

for循环不能用。


for (var i = 1 ; i < 5 ; i ++) {

        $('.box' + i).mouseover(function () {

            $('.box' + i + ' .prev').css('display', 'block');

            $('.box' + i + ' .next').css('display', 'block');

        }).mouseout(function () {

            $('.box' + i + ' .next').css('display', 'none');

            $('.box' + i + ' .prev').css('display', 'none');

        });

    }

是我写错了吗


慕容森
浏览 981回答 1
1回答

慕雪6442864

闭包问题。for (var i = 1 ; i < 5 ; i ++) {&nbsp; (function(i){&nbsp; &nbsp; $('.box' + i).mouseover(function () {&nbsp; &nbsp; &nbsp; $('.box' + i + ' .prev').css('display', 'block');&nbsp; &nbsp; &nbsp; $('.box' + i + ' .next').css('display', 'block');&nbsp; &nbsp; }).mouseout(function () {&nbsp; &nbsp; &nbsp; $('.box' + i + ' .next').css('display', 'none');&nbsp; &nbsp; &nbsp; $('.box' + i + ' .prev').css('display', 'none');&nbsp; &nbsp; })&nbsp; })(i)}…… 把var改成let也行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript