我想防止第二次点击,直到使用绑定和取消绑定完成动画,但它不起作用

I want to prevent a second click from firing until an animation is complete using bind and unbind but it isnt working

本文关键字:绑定 取消 不起作用 动画 第二次      更新时间:2023-09-26

我想防止第二次点击,直到动画完成。

$('#moveDown').click(function(){
  var currentPos = parseInt($('#blog-slider').css('top'));
  if (currentPos < 0) {
    $('#moveDown').unbind('click');
    $('#blog-slider').animate({'top': currentPos + 140},500, function() {
      $('#moveDown').bind('click');
    });
  }
});

解除绑定工作正常,但动画完成后不会重新绑定,因此动画只运行一次。

我确实看过这里,但这只是证实了"绑定"answers"解除绑定"是获得我需要的功能的方法,我仍然不明白为什么它不起作用。

$('#moveDown').bind('click')只会触发一次单击,除非您绑定了一个执行某些操作的函数。

一种技术是在元素上设置和取消设置.data变量,并检查它是否已设置:

$('#moveDown').click(function(){
    if (!$('#moveDown').data('clicked')) {
        $('#moveDown').data('clicked',true);
        var currentPos = parseInt($('#blog-slider').css('top'),10); // always use a radix
        if (currentPos < 0) {
            $('#blog-slider').animate({'top': currentPos + 140},500, function() {
                $('#moveDown').data('clicked',false);
            });
        }
    }
});