jQuery – Eventos em conteúdo carregado por Ajax
| Tweet |
|
O método .ready() do jQuery é executado logo que todo o DOM (Documento HTML) está carregado, caso atribua observadores de eventos do tipo .click() ou com o .bind() e depois da definição desses eventos você carregue conteúdo por Ajax e deseje que esse conteúdo também seja observável aos eventos atribuidos, você deve usar o método .live().
Com o .live() você define o evento independentemente se o elemento existe ou ainda esta por ser carregado, veja um exemplo:
$('.clickme').live('click', function() {
alert('clicou');
});
Resumindo, no momento da execução desse código, todos os elementos com o atributo class=”clickme” serão observados, e se depois dessa etapa você adicione ao DOM novos elementos com o mesmo atributo, esses também serão observados, isso só é possível pelo método .live();
Se precisar desativar um observador .live(), mate o evento com o .die().
$('.clickme').die();
//Ou
$('.clickme').die('click');
