【问题标题】:jQuery animate callback is not triggered after queue:false has been used?使用 queue:false 后不触发 jQuery animate 回调?
【发布时间】:2013-04-11 00:56:00
【问题描述】:

为什么在使用queue:false 之后动画回调 没有被触发?

比如这里发生了回调。

$("#move").click(function(){

        $(".box").animate({ 
            marginLeft: "100px"
        },500 , function() {

            alert('complete');
            console.log('complete');
        });

        return false;
});

但不是这个,

$("#move").click(function(){

        $(".box").animate({ 
            marginLeft: "100px"
        }, { queue:false, duration:500 } , function() {

            alert('complete');
            console.log('complete');
        });

        return false;
});

link 到 jsfiddle

我可以同时拥有queue:falsecallback 吗?

【问题讨论】:

    标签: jquery callback jquery-animate


    【解决方案1】:

    这将不起作用 karthikr... 队列将不再起作用。 正如您提到的动画被定义为.animate(属性,选项)。您需要使回调成为选项参数的一部分:

    $("#move").click(function(){
    
        $(".box").animate({ 
            marginLeft: "100px",
         },{queue:false, duration:500, complete:function() {
    
              alert('complete');
              console.log('complete');
            }//callback function
        });//options and animate
    
        return false;
    });
    

    【讨论】:

      【解决方案2】:

      格式错误:

      查看此fiddle

      jquery 动画is defined as follows:.animate( properties, options )

      $("#move").click(function(){
      
              $(".box").animate({ 
                  marginLeft: "100px",
               queue:false, duration:500 } , 5000, function() {
      
                  alert('complete');
                  console.log('complete');
              });
      
              return false;
      });
      

      【讨论】:

      • 请问 - 持续时间 500 和 5000 之间有什么区别?
      • 它只是持续时间,以毫秒为单位。默认情况下,在 jquery animate 中,持续时间设置为 400
      猜你喜欢
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多