快速双击会导致代码错误

时间:2013-08-14 09:12:32

标签: jquery

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

然而,似乎快速双击导致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'); 
        }
    })
});

1 个答案:

答案 0 :(得分:0)

初始化动画后,您正在关闭“正在运行”,而不是在完成动画后。例如,我会这样做:

if (!elem.data('running')) {
     elem.data('running', true);
     console.log('started running');
     elem.fadeOut('fast',function(){
         elem.data('running', false);
     });
}