2013-04-11 49 views
2

为什么动画回调queue:false已被使用后未被触发?jQuery animate回调队列后不会触发: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

回答

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; 
}); 
+0

AW ......有了!谢谢。 – laukok 2013-04-11 01:02:11

+0

请问 - 持续时间500与5000之间有什么区别? – laukok 2013-04-11 01:07:11

+1

它只是以毫秒为单位的持续时间。默认情况下,在jQuery的动画,持续时间设置为400 – karthikr 2013-04-11 01:08:20

6

这是行不通的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; 
});