0

フリップアニメーションを制御するために使用される次のコードがあります。通常のクリックですべて正常に動作します。

ただし、高速ダブルクリックにより、この問題を防ぐはずのブールチェックを通過する 2 つのイベントが発生するようです。console.log では、最初のプロセスで「実行中」が表示され、2 回目のクリックで「すでに実行中」と表示されることを期待しています。

誰かが私が間違っていることと、この問題を回避する方法を教えてくれませんか?

ありがとう、

$('.item').each(function() {
    var elem = $(this);
    elem.data('running', false);

    elem.bind("click",function(event){ 
        event.preventDefault();

        if (elem.data('running') == false) {
             elem.data('running', true);
             console.log('started running');
             //do some stuff
             elem.data('running', false);
        } else { 
             console.log('already running'); 
        }
    })
});
4

1 に答える 1

0

アニメーションを完了した後ではなく、アニメーションを初期化した直後に「実行中」をオフにしています。たとえば、次のようにします。

if (!elem.data('running')) {
     elem.data('running', true);
     console.log('started running');
     elem.fadeOut('fast',function(){
         elem.data('running', false);
     });
}
于 2013-08-14T09:19:54.000 に答える