У меня есть следующий код для разворота 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();
});
Почему это?
Если вы используете второй параметр метода .animate
в качестве объекта параметров, вы не можете отправить обратный вызов в качестве третьего параметра.
В вашем случае вам необходимо использовать полный параметр объекта options.
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 )
но не сразу.
источник: http://api.jquery.com/animate/
Анимации:
.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();
}
});
Поскольку .animate()
имеет только два объявления:
нет для вашего использования, вы можете увидеть больше о .animate()
здесь: http://api.jquery.com/animate/
Если вы хотите использовать options
(очередь и продолжительность), у вас не может быть такой функции обратного вызова; вы должны включить функцию обратного вызова в options
(см. документацию):
var current = $('.s_text:visible');
current.animate({
right: 1014,
opacity:0
},{
queue: false,
duration:2000,
complete: function() {
current.hide();
}
);