2017-05-30 9 views
-2

最近トリガーされた後、クリックのトリガーを遅らせたい。どうして?私のウェブサイトでは、単に「ドロップダウンアイコン」を何度もクリックするだけで、スライドを複数回切り替えたりしたくないのですから...ドロップダウンメニューがスライドされて別のものがトリガーされるまで待つことを望みます"ドロップダウンアイコン"最近になってからクリックしてX秒間待つ方法は? - JQuery

私のウェブサイトのURLがあるにクリックします。

function desplegarMenu() { //DESPLIEGA MENU EN RESPONSIVE 
    $('#dropdown').click(function() { 
     $('.container-menu ul').slideToggle(500); 
     $('#dropdown i').toggleClass("fa fa-bars").toggleClass("fa fa-times"); 
    }); 
} 

$(document).ready(function() { 
    desplegarMenu(); 
}); 

ありがとう:www.ayfshowroom.byethost5.com

私はjqueryのを使用して、新しいよ、これは私のコードです!

+0

をアニメーション化するときは、tooglerボタンを無効にすることができ、あなたは、人々は基本的に自分の行動を「キャンセル」と背中すぐにメニューを切り替えることができるようにしたくありませんか?ユーザーとしてその感情を感じることができ、アニメーションが完了するのを待つ必要がないのはうれしいことです。 –

+0

それは良い質問ですが、私は人々がそれらの複数のクリックをアイテムにして、ドロップダウンメニューがクレイジーなhahahaになるとき、それは素敵に見えると思いません。ありがとう! –

答えて

1

アニメーションが終了したときを監視し、終了したときにクリックイベントに反応します。

// create a new variable to record whether the animation is in progress 
var dropdownAnimating = false; 

function desplegarMenu() { //DESPLIEGA MENU EN RESPONSIVE 
    $('#dropdown').click(function() { 
     // if the animation is in progress, don't do anything 
     if (dropdownAnimating) return; 

     // set the flag that the drop down is animating 
     dropdownAnimating = true; 

     // use the complete function to reset the flag when the animation is complete 
     $('.container-menu ul').slideToggle(500, function() { dropdownAnimating = false; }); 

     $('#dropdown i').toggleClass("fa fa-bars").toggleClass("fa fa-times"); 
    }); 
} 

このように、アニメーションの進行中にユーザーがクリックすると、何も起こりません。

+0

これはいいですが、したくない場合は 'slideToggle'にoptionsオブジェクトを使う必要はありません。 '.slideToggle(500、function(){dropdownAnimating = false;});' –

+0

ああ、これはさらに優れています。私は私の答えを更新します。 –

+0

私はちょうど馬鹿、フラグhahahaを使用するだけの素晴らしいアイデア。ちょうどテストされ、それは働いた!どうもありがとう! –

0

...

$('#dropdown').click(function() { 
    var self = this; 
    $(self).prop("disabled",true); //disabling the button, to prevent another click 
    $('.container-menu ul').slideToggle(500, function() { 
     $(self).prop("disabled",false); //enabling the button after animation 
    }); 
    $('#dropdown i').toggleClass("fa fa-bars").toggleClass("fa fa-times"); 
}); 
+0

これは、アニメーションが終了するのを待つことなく、ボタンを無効にしてからすぐに有効にします。 –

+0

うん、それは動作しません!とにかく答えをありがとう –

+0

あなたは正しいです:)私は自分の投稿に変更を加えました、それはそのように動作するかもしれません –

関連する問題