0

こんにちは友人私は jQuery を使用して単純なドロップ ダウン メニューに取り組んでいます。マウスをメニューに入力すると、サブメニューが使用されて表示さslideDown(2000)れ、マウス アウトすると同じように表示されslideUp(2000)ます。ここでの問題は、ユーザーのマウスがメイン メニューに入り、突然マウス アウトした場合、コードに従って、スライド効果が完全に開いてから閉じることです。ユーザーがメニューからマウスアウトすると、サブメニューがスライドアップし、完全に開く必要がなくなります...参考のために、以下に私のコードを記載しました

脚本

$(document).ready(function(e) {
/*Navigation Code*/
$('#mainNav nav ul li').mouseenter(function(){

    $(this).children('ul').slideDown(200);
    })
$('#mainNav nav ul li').mouseleave(function(){

    $(this).children('ul').slideUp(200);
    })
$('#mainNav nav ul li > ul li ul').parent('li').children('a').css({background: 'url(images/navArrow.png) 184px 18px no-repeat'});

/*Navigation Code Ends*/
});

役立つと思いstop()ますが、使用するとコードが機能しなくなります

私を助けてください..事前に感謝します:)

4

2 に答える 2

2

追加しようとし.stop()ましたが、うまくいくようでした: http://jsfiddle.net/EjnHQ/

このような:

$('#mainNav nav ul li').mouseenter(function(){
    $(this).children('ul').stop().slideDown(200);
});

$('#mainNav nav ul li').mouseleave(function(){
    $(this).children('ul').stop().slideUp(50);
});

slideUpよりもペースを速くすることをお勧めしslideDownます。

何らかの理由でそれでもうまくいかない場合は、次のように.stop(true)orを追加してみてください.stop(true, true):

$('#mainNav nav ul li').mouseenter(function(){
    $(this).children('ul').stop(true, true).slideDown(200);
});

$('#mainNav nav ul li').mouseleave(function(){
    $(this).children('ul').stop(true, true).slideUp(200);
});

パラメータは、Trueキューに入れられたすべてのアニメーションをクリアするためにも使用されます。

;また、コマンドの最後に忘れないでください。

于 2013-10-29T05:44:42.893 に答える