如果用户没有将鼠标悬停在显示的div上,我该如何隐藏显示的div

时间:2015-05-12 10:21:04

标签: jquery

我有两个divs彼此靠近。当我将鼠标悬停在div一上时,div二显示。

如果我不将鼠标悬停在div两个上,它应该淡出。或者,如果我将鼠标从div移动到其他地方,那么div两个应该淡出。

$(".one").mouseover(function () {
    $(".two").show();
});
$(".two").mouseleave(function () {
  $(".two").fadeOut(1);
});

Js Fiddle

4 个答案:

答案 0 :(得分:2)

您可以在正文上添加mouseover事件,并根据当前目标执行操作。如果鼠标悬停在身体​​的任何位置.one.two

,这将关闭/隐藏元素
$("body").mouseover(function (e) {
    if(!($(e.target).is('.one') || $(e.target).is('.two'))){
        $(".two").fadeOut();
    }
});

<强> Updated Fiddle

答案 1 :(得分:1)

更新了您的Fiddle

您可以使用其他父div并将事件绑定到它,而不是.one.two

答案 2 :(得分:0)

检查一下。

$(".one").hover(function () {
$(".two").show();
},function(){
   if($(".two:hover").length==0) {
    $(".two").fadeOut();
}else{
    $(".two").mouseleave(function () {
        $(".two").fadeOut();
    });
}
});

答案 3 :(得分:-1)

我是靠自己做的。

$(".one").mouseover(function () {
    $(".two").show();
});
$(".one").mouseleave(function () {
    if($(".two").is(":hover")){
    }else{
        $(".two").fadeOut();
    }
});
$(".two").mouseleave(function () {
    if($(".one").is(":hover")){
    }else{
        $(".two").fadeOut();
    }
});

Updated Js Fiddle