首页 文章

Jquery - 使用toggle()但禁用它直到动画完成

提问于
浏览
0

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

$(".class").toggle( function() { //things to do... animations and so on }, function(){ // other things to do... } );

现在,当我通过经常点击来调用切换效果时,两个函数的动画不会等待另一个完成 . 所以我想禁用切换效果,而不是每个函数中的东西都已完成 . 因此,当切换器调用第一个函数时,不应通过.class元素上的另一次单击调用第二个函数 . 反过来说

知道我怎么能这样做吗?

菲利,提前谢谢

1 回答

  • 2

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

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

    这样做是因为检查你的选择器和:animated找到了任何元素(他们're still animating), it' d return false 并阻止.toggle()处理程序甚至被命中 . 这是因为事件处理程序按它们绑定的顺序执行,所以如果第一个返回 false ,第二个不会运行 .

相关问题