0

1 つの div を非表示にして別の「クリック時」を下に表示するこのボタンは疑似コードですが、うまくいけば問題を説明するのに十分です。

問題は、ユーザーがスライドとアニメーションが終了する前にボタンを押すと (すばやく 2 回押すなど)、古い div と新しい div が表示されることです。どういうわけか、アニメーションが完了するまでクリックを無効にする必要があります

助けてくれてありがとう

$( '#edit-buttons' ).on("click", "div", function(event){

        $('#'+currentDiv).slideUp('fast', function() {
            $('#'+nextDiv).animate({ left: 'show', opacity: 'show' }, 'slow');
        });

});
4

1 に答える 1

0

ブール値を使用して関数呼び出しをブロックできます。

var block = false;

$( '#edit-buttons' ).on("click", "div", function(event){
     if(!block){
        block = true;
        $('#'+currentDiv).slideUp('fast', function() {
            $('#'+nextDiv).animate({ left: 'show', opacity: 'show' }, 'slow',function(){
               block = false;
            });
        });
      }
});
于 2013-01-31T01:48:54.710 に答える