Слушатель событий JQuery для .show ('drop', 500) == закончен - PullRequest
2 голосов
/ 09 декабря 2011

Я ищу прослушиватель событий, где я могу проверить, закончилась ли анимация с .show('drop', 500).

Я хочу использовать его следующим образом:

if($('#id').show('drop', 500) == complete){
// do some stuff
}

IsЕсть слушатель события для этого случая?

С уважением

Ответы [ 7 ]

4 голосов
/ 09 декабря 2011

Вы должны добавить обратный вызов

$('#id').show('drop', 500, function(){
   //do something when the element has shown
}) 

Это взято из документов

Если указан, обратный вызов запускается после завершения анимации. Это может быть полезно для объединения различных анимаций в последовательность. Обратному вызову не отправляются никакие аргументы, но это установлено в анимированный элемент DOM. Если несколько элементов анимированы, это Важно отметить, что обратный вызов выполняется один раз за сопоставленный элемент, а не один раз для анимации в целом.

РЕДАКТИРОВАТЬ - если ваша проблема в том, что вы не хотите, чтобы пользователь взаимодействовал с элементом, пока он показывает, что вы можете сделать что-то подобное

function elementNotReady(){
    return false;
};
 //attach the events so that if the user clicks the element nothing happens
 $('#id').on("click", elementNotReady);


$('#id').show('drop', 500, function(){
   //Remove the handler when the animation finishes
   $('#id').off('click', elementNotReady);
}) 
1 голос
/ 09 декабря 2011
$(#id).show('drop', 500,function(){
//do the stuff
});
1 голос
/ 09 декабря 2011

Большинству функций jQuery, если не всем, можно дать функцию, которая вызывается после того, как что-то сделано. Вот так:

$('#id').show('drop', 500, function () {
    // Do your thing
});
1 голос
/ 09 декабря 2011

Вам необходимо предоставить функцию callback, попробуйте это:

$("#id").show('drop', 500, function() {
    // do some stuffs.
});
1 голос
/ 09 декабря 2011

Третий параметр функции show является полным обратным вызовом:

$("#id").show(500, 'linear', function () {
  console.log("completed");
});
0 голосов
/ 09 декабря 2011

Почему бы вам не использовать show(); метод обратного вызова?

0 голосов
/ 09 декабря 2011

Попробуйте это:

$("#id").show('drop', 500, function() {
    // stuff to do when 'show' animation finishes
});

Последний параметр - это «обратный вызов».Эту функцию вы передаете методу show(), который запускается после завершения анимации.

Подробнее читайте здесь

...