Подтвердить что ты не робот

Анимированная функция обратного вызова (полная), выполненная при запуске?

Я использую jQuery 1.5.1 Это мой код:

$('.cellcontent').animate({
   left: '-=190'}, {
   easing: alert('start ani'),
   duration: 5000,
   complete: alert('end ani')});

Я получаю оба предупреждения до начала анимации!? Я хочу, чтобы полная функция запускалась после окончания анимации. Любые мысли?

4b9b3361

Ответ 1

Вам нужно передать функцию для вызова. Вместо этого вы вызываете функцию.

complete:  function() { alert('end ani'); } 

Ответ 2

Я вижу в этом две вещи.

Один, easing должен быть:

Строка, указывающая, какое ослабление функция, используемая для перехода

И complete должна быть функцией.

http://api.jquery.com/animate

alert('start ani');
$('.cellcontent').animate({
     left: '-=190'
   },
   {
     easing: 'swing',
     duration: 5000,
     complete: function(){
        alert('end ani');
    }
});

Ответ 3

Вам нужно передать функцию для завершения.

Попробуйте следующее:

$('.cellcontent').animate({
    left: '-=190'}, {
    easing: alert('start ani'),
    duration: 5000,
    complete: function() { alert('end ani') }
});

Поскольку полный ожидает функцию, он выполняет код, который вы передаете ему, чтобы получить объект функции, на который он может вернуться к завершению.

Ответ 4

Лучшее решение - это.

$('.cellcontent').animate({
    left: '-=190'}, {
    easing: alert('start ani')
}, duration).promise().done(function () {
     alert('end animation');
});

Ответ 5

сначала объявить их в функции, иначе метод будет вызван мгновенно:

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');
  }
}); 

Ответ 6

Я не думаю, что вам нужно "закончить"?

slideToggle(
					"fast","swing", function(){
							// your code here
						}
				);

Ответ 7

из jquery docs:

$( "#clickme" ).click(function() {
  $( "#book" ).animate({
    opacity: 0.25,
   left: "+=50",
    height: "toggle"
  }, 5000, function() {
    // Animation complete.
  });
});

Ответ 8

$('.cellcontent').animate({
  left: '-=190',
  easing:  'slow',
  duration: 5000,
  function () {
    alert('end ani');
  }
});