我有一个关于 jQuery 的相对简单的问题(请原谅我是菜鸟)。我在 div 上使用了“fadeToggle”(单击)功能来显示另一个元素,但是如果用户单击 div 说 100 次,我如何阻止动画在每次单击时一遍又一遍地播放?
问问题
778 次
4 回答
2
您还可以在调用之前验证队列是否为空,
$("button").click(function() {
if (!$animatedElement.queue().length) {
$animatedElement.fadeToggle("slow", "linear");
}
});
于 2012-05-16T18:44:50.067 回答
1
我已经看到了这个问题的一个变体,其中使用了is running?
一种变量:
running = false;
$("button:first").click(function() {
if (!running) {
running = true;
$("p:first").fadeToggle("slow", "linear", function() { running = false; });
}
});
于 2012-05-16T18:37:04.943 回答
0
您需要设置某种在第一次迭代中激活的指标,然后在该函数开始时检查它。这可以是一个变量,或者您可以在目标元素上添加并检查类名。
于 2012-05-16T18:34:21.100 回答
0
最简单的方法是使用 .(stop) 示例:
<div id="hover_on_me_box>Hover on me!</div>
<div style="display:none" id="hidden_box">Content....</div>
$("#hover_on_me_box").hover(function() {
$("#hidden_box").stop().fadeToggle("500");
});
在此处阅读更多信息:http: //www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup
于 2017-02-01T16:12:57.217 回答