Функции jQuery, пропускаемые после анимации - PullRequest
0 голосов
/ 09 января 2012

У меня есть следующий фрагмент кода, который запускается из функции щелчка.По какой-то причине часть, которая анимируется до 100px, никогда не запускает console.log или my_function(), она пропускает все, что вы там поместили.Часть, которая оживляет до 200px, все работает нормально.Что дает?

if($(this).hasClass('open'))
{ 
  $(this).removeClass('open').addClass('closed');
  $(this).animate({'width': '100px'}, {queue:false, duration:150, easing: 'linear'}).delay(160, function (){
    //Nothing in here ever get run??
    console.log('closed');
    my_function();
  });
}
else
{
  $(this).removeClass('closed').addClass('open');
  $(this).animate({'width': '200px'}, {queue:false, duration:200, easing: 'linear'}).delay(210, function (){
    console.log('opened');
    my_function();
  });
}

Ответы [ 2 ]

5 голосов
/ 09 января 2012

$.fn.delay не имеет параметра обратного вызова.

http://api.jquery.com/delay/

1 голос
/ 09 января 2012

Вы должны использовать обратный вызов на .animate, вместо того, чтобы пытаться использовать .delay.Попробуйте это:

$(this).animate({'width': '100px'}, 150, function (){
    console.log('closed');
    my_function();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...