Wygląda to tak, że po naciśnięciu pewnego elementu (np. hiperłącza) odbieram odpowiedź wygenerowaną przez AJAXa, jest to kod HTML i to wszystko wrzuca mi się do odpowiedniego diva - to śmiga dobrze. Problem się pojawia jak w zwróconym html'u mam inne hiperłącze, które ma ustalone z góry ID. Wcześniej w skrypcie oczywiście sobie napisałem obsługę tego elementu , że po kliknięciu coś tam coś tam się dzieje, chociażby prosty alert. No ale niestety element przez JS nie jest wykrywany. Da się temu jakoś zaradzić, aby to zatrybiło ?
Trochę kodu:
Plik "a.js"
$(document).ready(function() { function show($page) { $.post ("./ajax.php", {page: $page}, function(data) { $("#result").html(data); } ) } $("#doAjax").click(function(e){ e.preventDefault(); show(1); } ) $("#link").click( function(e){ e.preventDefault(); alert("hello"); }) } )
"ajax.php" zwraca np.
no i po kliknięciu w ten link brak alertu.
//Edit
Znalazłem sam rozwiązanie - wystarczyło użyć funkcji "delegate".
Dla ludzi mających ten sam problem zamiast linii
$("#link").click( function(e){ e.preventDefault(); alert("hello"); })
należy wstawić
$("#kontener").delegate('#link, 'click', function() { alert("hello") });