Подписаться на событие 'complete' .load () для определенного элемента DOM? - PullRequest
2 голосов
/ 01 мая 2010

Я уже использую .live () и .bind ('ajaxComplete') для выполнения определенных связанных задач, но я обнаружил, что хочу иметь возможность прослушивать событие "complete" определенного элемента DOM, который будет вызывать .load () в jQuery в разное время.

В этой ситуации я не хочу слушать ВСЕ завершенные события глобально (если кто-то не может показать мне, как получить правильную цель из объекта события, возвращенного 'ajaxComplete'). Я хотел бы иметь возможность сделать что-то вроде этого:

$('.selector').load('url.php',{data:data},function(){
   // LOCAL complete function
});

и затем где-нибудь еще, присоедините обработчик для прослушивания и выполнения некоторого другого кода всякий раз, когда этот вызов ajax запускается и завершается:

$('.selector').bind('complete',function(){ ... });

Я знаю, что могу использовать то, что я указал выше как «МЕСТНУЮ завершенную функцию», чтобы присоединить некоторые функциональные возможности, но я хотел бы иметь возможность привязываться к завершенному событию из другого места в моем коде - так же, как и с другими такие события, как «клик».

Есть ли способ сделать это? Или я всегда должен использовать событие complete в контексте метода load ()?

Ответы [ 2 ]

2 голосов
/ 01 мая 2010

Просто вызовите полное событие в вашем локальном полном обратном вызове:

$('.selector').load('url.php',{data:data},function(){
   $(this).trigger('complete');
   // Local handling of the complete event.
});

$('.selector').bind('complete',function(){ ... });
0 голосов
/ 01 мая 2010

Вы были близки к своему примеру, смотрите документацию .load () в jQuery. http://api.jquery.com/load/

$('.selector').load('url.php',function() {
    //Complete function
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...