Od pewnego czasu zmagam sie z problemem obsługi eventów przy użyciu Ajaxa. Kłopot polega na tym, że przykładowe zdarzenie click nie odnosi się do danych załadowanych Ajaxem i dołaczonych do strony (np. listy). Kod podglądowy:
Kod
$(document).ready(function(){
$('#click').click(function(){ alert("noth");
var dane = $('.sortable').sortable('toArray');
alert(dane );
});
});
$('#click').click(function(){ alert("noth");
var dane = $('.sortable').sortable('toArray');
alert(dane );
});
});
I teraz tak. To jest kod do obsługi Drag n' Drop w UI JQuery. Dołączam ten kod w nagłówku przy pierwszym ładowaniu strony. Następnie Ajaxem pobieram strony-matki. Klik w każdą stronę matkę powoduje załadowanie jej dzieci:
Kod
$(document).ready(function(){
$('.matka').click(function(){
var idek = $(this).attr("title");
$("#enf-"+idek).load(podkatalog + "ajax/szukaj/co/dzieci/matka/" + $(this).attr("title"));
});
});
$('.matka').click(function(){
var idek = $(this).attr("title");
$("#enf-"+idek).load(podkatalog + "ajax/szukaj/co/dzieci/matka/" + $(this).attr("title"));
});
});
Dzieci ładują się bez problemów. Kłopot jest natomiast, kiedy klikam w link do porządkowania wygenerowany w $('.matka').click. Jest on nieaktywny i działa jedynie link wygenerowany na samym początku - tak, jakby ta dynamiczna generacja nie odnosiła sie do zdefiniowanych w nagłówku kodów JS.
Starałem się umieszczac te eventy click w callbacku przy użyciu $.ajax(), ale to także nie zdało rezultatu. Dołączałem także te same kody JS przy pobieraniu danych Ajaxem i także bez pozytywnych wyników. Podobny wynik przy próbie gry z argumentem synchronic i asynchronic. Jeżeli moglibyście mnie trochę nakierowac, to byłbym wdzięczny.