我发现过去问过这个问题的所有其他人都被告知使用:hover
,但这不再存在。有没有办法boolean
摆脱.hover()
?
我目前正在使用.hover()
,以便div
在我mouseover
成为按钮时出现,然后在我出现时消失mouseout
。但是,我想添加一个检查,以便div
除非鼠标不在按钮上方并且鼠标不在div
.
像这样的东西应该工作......
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
});