2013-03-14 2 views
0

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

$('#container').on('mouseover.grow', function(){ 
    $(this).parents('.secondary').animate({height:'360'},1000); 
}).off('mouseover.grow'); 

Но этот подход не кажется рабочим. Любой указатель на то, что мне не хватает здесь, будет оценен ...

ответ

2

Цепочка .off() метод, как вы это сделали, приведет к немедленному его срабатыванию.

Вы хотите назвать его в complete обратного вызова метода .animate() (то есть ждать, пока одушевленные не завершена):

$('#container').on('mouseover.grow', function(){ 
    var $this = $(this); 

    $this.parents('.secondary').animate({height:'360'},1000, function() { 
     $this.off('mouseover.grow'); 
    }); 
}); 

отметить также, что мы относим var $this = $(this); поскольку сфера this будет другой в функции обратного вызова.

+0

спасибо! похоже, я отказался от неправильного места. – paul

Смежные вопросы