javascript - Jquery - 使用toggle(),但在动画完成之前禁用它

标签 javascript jquery animation toggle effects

我正在使用 jquery 切换功能,如下所示:

$(".class").toggle( 功能() { //要做的事情...动画等等 }, 功能(){ //其他要做的事情... } );

现在,当我经常通过单击调用切换效果时,两个函数的动画不会等待另一个函数完成。所以我想禁用切换效果,直到每个函数中的内容完成。因此,当通过切换调用第一个函数时,第二个函数不应通过再次单击 .class 元素来调用。反之亦然

知道我该怎么做吗?

提前致谢, 菲尔

最佳答案

您可以添加 .click()处理程序绑定(bind)在执行此操作的切换之前,例如:

$(".class").click(function() {
  if($(".selector:animated").length) 
    return false;
}).toggle(function() { 
  //things to do... animations and so on 
}, function(){
  // other things to do... 
});

它的作用是检查您的选择器和 :animated找到任何元素(它们仍在动画),它会返回 false 并阻止 .toggle()处理程序甚至不会被击中。这是可行的,因为事件处理程序按照它们绑定(bind)的顺序执行,因此如果第一个返回 false,第二个将不会运行。

关于javascript - Jquery - 使用toggle(),但在动画完成之前禁用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543166/

相关文章:

javascript - jcarousel 不会在图像上触发事件

javascript - 开 Jest : Cannot spy the property because it is not a function; undefined given instead getting error while executing my test cases

javascript - JQuery 可调整大小的取消不起作用

javascript - HTML to canvas 的性能问题,从哪里开始?

javascript - d3 鼠标参数与 jquery

格式化为货币的 Javascript 函数

Javascript。当前 AJAX 停止后运行 AJAX 流

c++ - 在两个不同的线程(解决方案中没有线程)中使用 SDL2-render 显示两个或多个不同的动画。 C++

html - 为什么我的文字闪烁?

css - 如何将不同的动画速度分配给 CSS3 动画中的不同属性?