Javascript 在处理函数时防止点击

标签 javascript html

我是 Javascript 新手,请耐心等待。

我有一个类似于下面的代码,每当我单击一个按钮时,它都会在 HTML 元素上执行一些动画,问题是,如果用户单击多次,动画将被缓冲并以巨大的延迟执行立刻。

下面的代码“应该”通过禁用循环直到动画完成来解决问题,但事实并非如此。我不能过多改变代码的结构,它或多或少必须保持这种形式。

var processing = false;

$("p").click(function() {
  if (processing == false) {
    for (i=0; i<5; i++) {
      if (processing == false)
        processing = true;
      tastor();
    }
    processing = false;
  }
});


function tastor() {
  zubi = parseFloat($('p').css('font-size'));
  $('p').animate({'font-size': zubi+i}, 500);
}

最佳答案

您可以使用:animated jQuery 伪选择器在元素已经有动画的情况下提前爆发:

$("p").click(function() {
  if ($(this).is(':animated')) return;

  // The rest of your normal code.
});

演示:http://jsfiddle.net/MgmET/4/

关于Javascript 在处理函数时防止点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359667/

相关文章:

image - 在 div 内滚动的整页背景图像

jquery - 在 MVC 应用程序中对文本框实现验证状态

php - 如何将 JavaScript 变量传递给 PHP?

javascript - 仅使用 handle 拖动整个父 div

javascript - Slack API : channels. 创建后跟 channels.invite/info 返回 channel_not_found 错误

javascript - CSS JavaScript 灯箱图库

javascript - 仅使用一次tinymce编辑器textarea

javascript - Angular ng-view 或 ng-include 不起作用

javascript - Chrome Web Extension,使用按钮在新选项卡中打开网页

html - 如何使用 960.gs 将 div 置于屏幕中央