jQuery - não é possível ligar eventos a elementos dinâmicos?
Eu vim para manter um pedaço de javascript que baixa alguns dados JSON do servidor, constrói uma nova linha de tabela (como$('<tr></tr')
) e insere no documento.
oa
nó é, em um ponto criado assim:
var a = $('<a class="foo" href="#"></a>');
e depois, um evento é ligado a isto assim:
a.click(function () {
// yadda yadda
return false;
});
O único problema é que isso não parece funcionar. Nem a ligação atravéson()
ou o depreciadolive()
. O manipulador é simplesmente "ignorado", nunca dispara e a página rola para o topo (devido àhref="#"
). Ao ligar o evento, o elemento já estáappend
ed para DOM. Qualquer ajuda seria muito apreciada.
Algumas informações contextuais que vêm à mente: o elemento é criado dentro de um loop iterando sobre os dados, mas isso não deve ser um problema, a menos que o javascript tenha algumrealmente coisas estranhas acontecendo com o escopo, maistodo o resto Eu tento com o elemento funciona: eu posso mudar seu conteúdo, estilo, apenas a ligação do evento não funciona. E, claro, a versão jQuery, que é1.8.3.