3

効果が頻繁に実行されている理由を誰か教えてください。つまり、エフェクトが終了するのを待たずに 3 回ホバリングし、エフェクトが 3 回実行されるまで待つことができます。

   $(function() {
            $('#dropdown_nav li').find('.sub_nav').hide();
            $('#dropdown_nav li').hover(function() {

                $(this).find('.sub_nav').slideDown(300);
            }, function() {

                $(this).find('.sub_nav').delay(2000).slideUp(300);
            });
        });

ここでテストできます:http://jsfiddle.net/QTGvJ/

4

1 に答える 1

5

を使用.stop()すると、アニメーション キューがクリアされます

LIVE DEMO

$('#dropdown_nav li').on('mouseenter mouseleave',function() {
      $('.sub_nav', this).stop().slideToggle();
});

mouseleave の遅延:

$('#dropdown_nav li').on('mouseenter mouseleave',function( e ) {
    var delayTime = e.type=='mouseleave' ? 1000 : 0;
    $('.sub_nav', this).stop().delay( delayTime ).slideToggle();
});

LIVE DEMO 2 WITH DELAY

詳細: http://api.jquery.com/stop/

于 2013-02-04T18:14:35.090 に答える