私は次のコードを持っています。
$("#login").mouseout(function() {
setTimeout(function() {
$("#login").animate({
height: "toggle"
})
}, 500);
});
マウスが#loginを離れると、500ミリ秒待機してから、要素を非表示にします。私が欲しいのは、マウスが要素を離れて500ミリ秒以内にそこに戻った場合、要素を非表示にしないことです。それ以外の場合、マウスが要素の「範囲」から500ミリ秒以上外れていると、アニメーション関数が呼び出され、要素が非表示になります。
このコードをそこに置くと
$("#login").mouseover(function() {
clearTimeout(t);
});
要素を閉じるときにマウスを合わせると、アニメーションが完了した後、要素が再び飛び出します。