javascript - Jquery循环通过onmouseover,有多个div

标签 javascript jquery css loops

好吧,希望我能阐明这一点并传达我的观点。我进行了一些搜索,但没有真正找到它。

JSfiddle 页面:JS Fiddle此外,一些 CSS 的大小不会正确,因为那不是正确的图像。

但这是 Javascript 代码:

 //mouse over
for(var i = 0; i<10; i++){
    $("#client"+i).on("mouseover", function(){
        $(this).removeClass("clientsOff").addClass("clientsOn");
        for(var e = 0; e < 10; e++){
            (function(){
                $("#overlayC"+e).css({'display':'block'});
                })();
            };
        });
    };

  //mouse leave 
for(var i = 0; i<10; i++){
    $("#client"+i).on("mouseleave", function(){
        $(this).removeClass("clientsOn").addClass("clientsOff");
        (function(){
            for(var e = 0; e<10; e++){
                $("#overlayC"+e).css({'display':'none'})
            }})();
        });
    };

好了,进入正题。这里有两个悬停事件。其中之一(工作正常)只是切换类,每次悬停,一次一个。

现在,第二个是另一种悬停效果,但不是一次一个地显示所有效果。

现在解决这个问题的最简单方法是只为每个 id 悬停,但这将永远/效率不是很低。这就是为什么我在这里使用循环。现在,我知道它需要另一个关闭,但它无法正常工作。

我已经尝试了几种不同的方法来做到这一点,但它们要么抛出相同的结果,要么根本不起作用。

是的,起始循环可以是一个,但现在它有助于将事物分开,这样我可以更好地阅读事物

最佳答案

看起来您在每次鼠标悬停时都显示了所有 overlayC

for(var i = 0; i<10; i++){
    (function(i){
        $("#client"+i).hover(function(){
            $(this).removeClass("clientsOff").addClass("clientsOn");
            $("#overlayC"+i).css({'display':'block'});
        }, function(){
            $(this).removeClass("clientsOn").addClass("clientsOff");
            $("#overlayC"+i).css({'display':'none'})
        });
    })(i);
};

演示:Fiddle

关于javascript - Jquery循环通过onmouseover,有多个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848996/

相关文章:

javascript - 如何通过ajax重新加载表数据

javascript - 如何切换结构以确定哪个类具有正文?

javascript - 显示为拼贴画/画廊的 Jquery 图像

html - 调整网页大小时如何使 div 居中?

css - 删除 react-native Picker 底部的边框

javascript - Meteor 中的模板级订阅

javascript - 内联编辑待办事项列表无法更改输入值

javascript - SailsJS : Requiring Assets, 例如 sails.io.js

javascript - 一段时间后更改线性渐变背景

javascript - 将字符串从 ajax 传递到 PHP