0

過去にこれを尋ねた他のすべての人が を使用するように言われたことがわかりましたが、:hoverそれはもう存在しません。から抜け出す方法はありbooleanます.hover()か?

私は現在、ボタンを押したときに a を表示する.hover()ために使用しています。ただし、マウスがボタンの上になく、マウスが の外にない限り、 が消えないように、チェックを追加したいと思います。divmouseovermouseoutdivdiv

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 に答える