0

我发现过去问过这个问题的所有其他人都被告知使用:hover,但这不再存在。有没有办法boolean摆脱.hover()

我目前正在使用.hover(),以便div在我mouseover成为按钮时出现,然后在我出现时消失mouseout。但是,我想添加一个检查,以便div除非鼠标不在按钮上方并且鼠标不在div.

4

1 回答 1

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() }
});

这是我通常使用的另一种方法,通过将隐藏延迟 500 毫秒,我们可以根据需要中断它(在这种情况下,如果用户离开按钮但进入 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
});
于 2013-07-03T17:54:35.193 回答