jQuery - nie można powiązać zdarzeń z elementami dynamicznymi?
Doszedłem do utrzymywania fragmentu javascript, który pobiera niektóre dane JSON z serwera, buduje nowy wiersz tabeli (jak$('<tr></tr')
) i wstawia go do dokumentu.
Thea
węzeł jest w pewnym momencie utworzony w ten sposób:
var a = $('<a class="foo" href="#"></a>');
a później wydarzenie jest powiązane z tym w ten sposób:
a.click(function () {
// yadda yadda
return false;
});
Jedynym problemem jest to, że to nie działa. Żadne z nich nie wiążeon()
lub przestarzałelive()
. Handler jest po prostu „ignorowany”, nigdy nie strzela, a strona przewija się do góry (z powoduhref="#"
). Podczas wiązania wydarzenia element jest jużappend
do DOM. Każda pomoc byłaby bardzo mile widziana.
Niektóre informacje kontekstowe, które przychodzą na myśl: element jest tworzony wewnątrz pętli iteracji danych, ale nie powinno to stanowić problemu, chyba że javascript ma jakieśnaprawdę dziwne rzeczy dzieje się z zasięgiem, pluswszystko inne Staram się, aby element działał: mogę zmienić jego zawartość, stylizację, tylko powiązanie zdarzeń nie działa. I oczywiście wersja jQuery, którą jest1.8.3.