2

jqueryのslideDownおよびslideUp関数を利用するドロップダウンメニューに問題があります。

ドロップダウン UL の上にマウスを置いた場合、まだ上にスライドしている間に外に出したり奥に戻したりすると、あたかも mouseenter および mouseleave イベントを急速な速射で発火させているかのように、ちらつき/点滅が始まります。

問題を説明するためにフィドルをセットアップしました:http://jsfiddle.net/LxL8Q/3/

Chrome では 1 秒間だけちらつき、その後自動的に修復されますが、Firefox では無期限にちらつき続けます。

ここでjQueryのちらつきに関連する多くの質問があることは知っていますが、私を助けることができる答えを見つけることができませんでした.

.each ループ全体を単純なホバー機能に置き換えようとしましたが、それを行った後、スライドアップとスライドダウンのアニメーションが機能しませんでした。

4

2 に答える 2

2

これを試して:

(function($){  

var nav = $("#topNav");  

nav.find("li").each(function() {  
if ($(this).find("ul").length > 0) {  

    //show subnav on hover  
    $(this).mouseover(function() {  
        $(this).find("ul").slideDown(300);  
    });  
    //hide submenus on exit  
    $(this).mouseleave(function() {  
        $(this).removeClass('active').find("ul").stop(true).slideUp(300);  
    });  
 }  
});

})(jQuery);
于 2012-10-05T15:15:57.543 に答える
0

私はこの問題を抱えていて、解決策を見つけました: add delay(50)before slideUp(300). ここで新しいフィドルをチェックしてください: http://jsfiddle.net/LxL8Q/42/

于 2013-11-27T21:11:44.757 に答える