Após injetar html por jquery, os manipuladores de eventos não funcionam com / sem delegado
Tenho uma lista de<div>
s com o mesmo html, mas com valores diferentes dentro do html. A hierarquia é a seguinte;
<div id="element">
<div class="likecomm">
<a class="commenticon" href="#">...some value according to the returning value...</a>
</div>
</div>
<div id="element">
<div class="likecomm">
<a class="commenticon" href="#">...some value according to the returning value...</a>
</div>
</div>
Em um evento, injeto html no topo da lista, que é outro<div id="element> ... </div>
Tenho o seguinte manipulador de eventos para clicar no ícone de comentário;
$('.commenticon').click(function(){
$(this).closest('.actionframe').next('nav').slideToggle(300);
return false;
});
Funciona correto até inserir o novo<div id="element> ... </div>
. O ícone de comentário, clique em manipulador de eventos, não corresponde. Eu pesquisei sobre esse problema, todos estavam dizendo que.delegate()
deve ser usado
Meu problema é que não sei onde usar a função delegar. Antes, eu recebia os resultados do ajax para injetar o<div id="element> ... </div>
, Eu usei.delegate()
unção @ na chamada ajax que injeta htm
$.ajax({
success:function(data) {
var html=... // the necessary div html binded with data
// prepend function call()
$('.likecomm').delegate(".commenticon","click" , function() {
$(this).closest('.actionframe').next('nav').slideToggle(300);
return false;
});
}
});
Atualmente, não funciona. Então, alguma idéia de como fazer isso funcionar?