Ответ 1
Вам нужно передать функцию для вызова. Вместо этого вы вызываете функцию.
complete: function() { alert('end ani'); }
Я использую jQuery 1.5.1 Это мой код:
$('.cellcontent').animate({
left: '-=190'}, {
easing: alert('start ani'),
duration: 5000,
complete: alert('end ani')});
Я получаю оба предупреждения до начала анимации!? Я хочу, чтобы полная функция запускалась после окончания анимации. Любые мысли?
Вам нужно передать функцию для вызова. Вместо этого вы вызываете функцию.
complete: function() { alert('end ani'); }
Я вижу в этом две вещи.
Один, easing
должен быть:
Строка, указывающая, какое ослабление функция, используемая для перехода
И complete
должна быть функцией.
alert('start ani');
$('.cellcontent').animate({
left: '-=190'
},
{
easing: 'swing',
duration: 5000,
complete: function(){
alert('end ani');
}
});
Вам нужно передать функцию для завершения.
Попробуйте следующее:
$('.cellcontent').animate({
left: '-=190'}, {
easing: alert('start ani'),
duration: 5000,
complete: function() { alert('end ani') }
});
Поскольку полный ожидает функцию, он выполняет код, который вы передаете ему, чтобы получить объект функции, на который он может вернуться к завершению.
Лучшее решение - это.
$('.cellcontent').animate({
left: '-=190'}, {
easing: alert('start ani')
}, duration).promise().done(function () {
alert('end animation');
});
сначала объявить их в функции, иначе метод будет вызван мгновенно:
var onComplete = function () {
alert('end ani');
};
затем вызовите их без()
$('.cellcontent').animate({
left: '-=190'}, {
easing: 'slow',
duration: 5000,
complete: onComplete //<-- function is passed as a variable, not called directly
});
или переносят их непосредственно в функцию (менее читабельны и медленнее, когда вы вызываете это много):
$('.cellcontent').animate({
left: '-=190'}, {
easing: 'slow',
duration: 5000,
complete: function () {
alert('end ani');
}
});
Я не думаю, что вам нужно "закончить"?
slideToggle(
"fast","swing", function(){
// your code here
}
);
из jquery docs:
$( "#clickme" ).click(function() {
$( "#book" ).animate({
opacity: 0.25,
left: "+=50",
height: "toggle"
}, 5000, function() {
// Animation complete.
});
});
$('.cellcontent').animate({
left: '-=190',
easing: 'slow',
duration: 5000,
function () {
alert('end ani');
}
});