我是Java语言的新手,请多多包涵。

我有一个与下面的代码相似的代码,每当我单击一个按钮时,它都会在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 - Javascript处理功能时防止点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12359667/

10-11 05:26