如何防止jQuery“fadeToggle”一遍又一遍地循环?

时间:2012-05-16 18:30:48

标签: jquery

我有一个关于jQuery的相对简单的问题(请原谅我是一个菜鸟)。我在div上使用了“fadeToggle”(单击)功能来显示另一个元素,但是如果用户单击div说100次,我如何阻止动画反复播放每次点击?

4 个答案:

答案 0 :(得分:2)

您也可以在调用之前验证队列是否为空,

$("button").click(function() {
    if (!$animatedElement.queue().length) {
      $animatedElement.fadeToggle("slow", "linear");
    }
});​

http://jsfiddle.net/EU5WK/

答案 1 :(得分:1)

我已经看到了这个问题的变体,其中使用了is running?种变量:

http://jsfiddle.net/VRDP9/

running = false;

$("button:first").click(function() {
    if (!running) {
      running = true;
      $("p:first").fadeToggle("slow", "linear", function() { running = false; });
    }
});​

答案 2 :(得分:0)

您需要设置在第一次迭代中激活的某种指标,然后在该函数的开头检查它。这可以是变量,也可以在目标元素上添加和检查类名。

答案 3 :(得分:0)

最简单的方法是使用。(停止) 例如:

@Produces(MediaType.TEXT_PLAIN)

在这里阅读更多内容: http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup