【问题标题】:JQuery hover multiple elements one functionjQuery悬停多个元素一个功能
【发布时间】:2013-02-20 14:38:15
【问题描述】:

我有三个带有隐藏内部 div 的 div,当您将鼠标悬停在每个 div 上时,它的内部 div 应该会显示,而当您展开时,它会再次隐藏。

比如我rollover div1,div1 inner出现,我rollout,div1 inner消失。

但是,当我将鼠标从 div1 直接移到 div2 上时,两者都被视为转出,例如 div1 inner 消失(应该如此),div2 inner 出现(应该如此)但随后 div1 inner 立即消失。

除了为 div1 2 和 3 编写单独的函数外,我不知道该怎么做,非常感谢任何帮助!

jsfiddle.net/user1688604/UZpEH/3

var box = $("#box1,#box2,#box3");
var inner = $(".item");


$(box).hover(function() {
    $(this).find(inner).stop(true,true).css({"left":"20px"}).animate({"top":"-10px", "opacity": "1"},400);

}, function() {
    $(this).find(inner).stop(true,true).animate({"top":"-20px", "opacity": "0"},400, function() {
        $(inner).css({"left":"-9999px", "top":"0"});
        });
});



<div id="box1">
<div class="item"></div>
</div>

#box1, #box2, #box3 {
            width: 300px;
            float: left;
            margin-right: 20px;
            position: relative;
            }


            .item {
                width: 151px;
                height: 49px;
                padding: 5px 10px 0;
                opacity: 0;
                position: absolute;
                    top: 0;
                    left: -9999px;
                }

【问题讨论】:

    标签: jquery hover


    【解决方案1】:

    向盒子 div 添加一个类(每个类都相同)

    <div id="box1" class="box">
        <div class="item"></div>
    </div>
    

    jQuery

    $(".box").hover(function(){
       $(this).find(".item").stop(true,true).css({"left":"20px"}).animate({"top":"-10px", "opacity": "1"},400);
    },function(){
       $(this).find(".item").animate({"top":"-20px", "opacity": "0"},400, function() {
           $(this).css({"left":"-9999px", "top":"0"});
       });
    });
    

    【讨论】:

    【解决方案2】:

    在哪个 div 或任何字段上,您想提供悬停功能,只需调用相同的类名,然后通过引用该类名来触发您的函数。

    【讨论】:

    • 感谢您的快速回复,我添加了一个 jsfiddle:jsfiddle.net/user1688604/UZpEH/3 它仍在发生,我想如果您可能没有时间完成推出动画移动到下一个框的速度太快了?
    【解决方案3】:

    试试下面...它会帮助你..

    为所有 DIV 保持相同的类名.. 并尝试以下操作..

    小提琴示例:http://jsfiddle.net/RYh7U/96/

    HTML:

    <div class="divBox">
        Show Div1
    <div class="item">
    Div 1    
    </div>
    </div>
    
    <div class="divBox">
        Show Div 2
    <div class="item">
        Div 2
    
    </div>
    </div>
    
    <div class="divBox">
        Show Div 3
    <div class="item">    
        Div 3
    </div>
    </div>
    

    jQuery :

    $('.item').hide(); 
    $('.divBox').hover(function() { 
        $(this).children('.item').show();     
    }, function() { 
        $(this).children('.item').hide(); 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2010-11-30
      相关资源
      最近更新 更多