Можно ли заставить jquery.live () работать с нагрузкой? - PullRequest
1 голос
/ 05 мая 2011

Я не могу заставить $ .live () работать с событием load, например:

$(".animate").live("load", function(){
   $(this).hide().fadeIn(1000);
})

Подробности:

У меня есть страница с результатами ajax.В этих ajax у меня может быть много сообщений об ошибках с классом "animate".Итак, я хочу каждый раз, когда браузер загружает элемент с классом «animate», браузер анимирует его, usind fadeIn.

Это возможно?

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

вы можете сделать это с помощью .ajaxComplete ()

 $('.animate').ajaxComplete(function() {
    $(this).hide().fadeIn(1000);
 });

Когда запрос Ajax завершается, jQuery запускает ajaxComplete событие.Любые и все обработчики, которые были зарегистрированы с помощью метода .ajaxComplete(), выполняются в это время.

просто подсказка: возможно объединить его с .ajaxSend ()

$('.animate').ajaxSend(function() {
  $(this).show().fadeOut(1000);
});

Всякий раз, когда должен быть отправлен запрос Ajax, jQuery вызывает событие ajaxSend .Все обработчики, зарегистрированные с помощью метода .ajaxSend(), выполняются в это время.

0 голосов
/ 05 мая 2011

Вы можете убедиться, что элемент скрыт (через css), прежде чем он будет отправлен в браузер.Затем можно использовать цикл setTimeout (...), чтобы найти скрытые и начать анимацию.

...