检查jQuery中的鼠标是否结束?

时间:2013-07-03 17:52:27

标签: jquery css

我发现过去曾经问过这个问题的所有其他人都被告知要使用:hover,但这已经不存在了。有没有办法从boolean中获得.hover()

我目前正在使用.hover(),以便在div按钮时显示mouseover,然后当我mouseout时它会消失。但是,我想添加一个检查,以便div不会消失,除非鼠标没有在按钮上并且鼠标不在div

1 个答案:

答案 0 :(得分:3)

这样的事情应该有用......

var $in_div = 0;

$("div").mouseenter( function(){
   $in_div = 1;
}).mouseleave( function(){
   $in_div = 0;
});

$("button").mouseenter( function(){
    $("div").show();
}).mouseleave( function(){
    if ( $in_div == 1 ) { $("div").hide() }
});

这是我经常使用的另一种方法,通过将隐藏延迟500ms,我们可以在需要时中断它(在这种情况下,如果用户离开按钮但是进入div)。

var $delay = 0;
$("button").mouseenter( function(){
    clearTimeout( $delay ); // don't hide
    $("div").show();
}).mouseleave( function(){
    $delay = setTimeout( function(){ $("div").hide() }, 500 );
});
$("div").mouseenter( function(){
    clearTimeout( $delay ); // don't hide
});