0

我有以下用于控制翻转动画的代码。正常点击一切正常。

但是,似乎快速双击会导致 2 个事件通过布尔检查,这应该可以防止这个问题。在 console.log 中,我希望看到第一个进程的“开始运行”和第二次点击的“已经运行”——相反,两次点击似乎都能通过,并对后面的逻辑造成严重破坏。

有人介意让我知道我做错了什么以及如何避免这个问题吗?

谢谢,

$('.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 回答