我发现过去曾经问过这个问题的所有其他人都被告知要使用:hover
,但这已经不存在了。有没有办法从boolean
中获得.hover()
?
我目前正在使用.hover()
,以便在div
按钮时显示mouseover
,然后当我mouseout
时它会消失。但是,我想添加一个检查,以便div
不会消失,除非鼠标没有在按钮上并且鼠标不在div
。
答案 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
});