jQuery .one多次执行回调函数

时间:2018-12-05 18:00:31

标签: javascript jquery animate.css

我正在将Animate.css用于带有jQuery第n个元素的动画。 这是我的代码的一部分。

$("tr td:nth-child("+columnIndex+")").addClass("animated flip").one('animationend oAnimationEnd mozAnimationEnd webkitAnimationEnd', function(){
      $("tr td:nth-child("+columnIndex+")" ).removeClass("highlight");
      animationFlag++;
      alert("Getting called several times");
    });
我的问题是,增加了animationFlag的回调函数被调用了几次。实际上,它被称为表中的行数。有什么方法可以调用一次。

1 个答案:

答案 0 :(得分:0)

我找到了解决该问题的方法。我只是引入了一个“被称为”变量来跟踪被调用的回调函数。

var called = false;
    $("tr td:nth-child("+columnIndex+")" ).addClass("highlight");
    $("tr td:nth-child("+columnIndex+")").addClass("animated flip").one('animationend oAnimationEnd mozAnimationEnd webkitAnimationEnd', function(){
      if(called==false){
        $("tr td:nth-child("+columnIndex+")" ).removeClass("highlight");
        animationFlag++;
        alert('hahhahahaha working');
        called = true;
      }else{
        return;
      }
      
    });
谢谢。