我有以下代码用于滑出div:
var current = $('.s_text:visible');
current.animate({
right: 1014,
opacity:0,
},{queue: false, duration:2000}, function() {
current.hide();
});
由于某种原因,回调函数不起作用!但!如果我删除选项{queue:false, duration:2000}
并将其替换为,2000,function()....
,则回调功能将起作用。
current.animate({
right: 1014,
opacity:0,
},2000, function() { // this one works...
current.hide();
});
为什么?
答案 0 :(得分:3)
如果您使用.animate
方法的第二个参数作为选项对象,则无法将回调作为第三个参数发送。
在您的情况下,您需要使用选项对象的完整参数。
var current = $('.s_text:visible');
current.animate({
right: 1014,
opacity:0,
},{queue: false, duration:2000, complete:function() {
current.hide();
}});
此方法接收的两个可选参数集是:
.animate( properties [, duration ] [, easing ] [, complete ] )
或
.animate( properties, options )
但不能同时兼得。
答案 1 :(得分:1)
动画:
.animate( properties, options )
在此处查找参考:http://api.jquery.com/animate/
var current = $('.s_text:visible');
current.animate(
{
right : 1014,
opacity :0
},{
queue : false,
duration:2000,
complete: function() {
current.hide();
}
});
答案 2 :(得分:1)
如果你想使用options
(队列和持续时间)你就不能拥有这样的回调函数;你应该在options
中加入回调函数(参见documentation):
var current = $('.s_text:visible');
current.animate({
right: 1014,
opacity:0
},{
queue: false,
duration:2000,
complete: function() {
current.hide();
}
);
答案 3 :(得分:1)
因为.animate()
只有两个声明:
没有一个是您的用途,您可以在此处查看有关.animate()
的更多信息:http://api.jquery.com/animate/