Guten Tag,
ich hänge hier total durch, Grund ist dieses Problem:
Ich habe eine Kommentarfunktion geschrieben, mittels Ajax schicke ich Daten an ein PHP Script, dieses Wertet diese Daten aus, schreib Sie in eine DB und gibt ein ECHO mit dem aktuellen Kommentar zurück, das klappt soweit auch alles.
Ich habe für jeden Kommentar dann aber noch ein "Löschen" Button, mit dem der User seinen Kommentar wieder löschen kann.
Und genau dieser Button funktioniert genau dann (und nur dann) nicht, wenn der Post gerade mit Ajax erstellt wurde, hier mal der Jquery/Ajax bereich, der dafür zuständig ist:
Der Teufel ist in der zweiten Zeile:
var com_id_del = $j(this).attr('id');
Die ID, die der sich da holt ist einfach nicht richtig, der holt sich immer die ID aus dem Kommentar, welches zuletzte erstellt wurde (oder irgend eine noch frühere).
Der neue "Löschen" Link, der durch mein PHP Script erzeugt wird und dann dynamisch mit dem neuen Kommentar angezeigt wird hat aber auf jedenfall die richtige ID, das habe ich schon X-Mal kontrolliert.
Warum wird also
var com_id_del = $j(this).attr('id');
nicht nochmal korrekt ausgeführt um die neue ID zu bekommen, wenn ich schon per live() das ganze eben Live halten will um per AJAX nachgeladenen Elemente zu holen?
gruß
ich hänge hier total durch, Grund ist dieses Problem:
Ich habe eine Kommentarfunktion geschrieben, mittels Ajax schicke ich Daten an ein PHP Script, dieses Wertet diese Daten aus, schreib Sie in eine DB und gibt ein ECHO mit dem aktuellen Kommentar zurück, das klappt soweit auch alles.
Ich habe für jeden Kommentar dann aber noch ein "Löschen" Button, mit dem der User seinen Kommentar wieder löschen kann.
Und genau dieser Button funktioniert genau dann (und nur dann) nicht, wenn der Post gerade mit Ajax erstellt wurde, hier mal der Jquery/Ajax bereich, der dafür zuständig ist:
Code:
$j(".com_del").live("click", function () {
var com_id_del = $j(this).attr('id');
var scripturl = $j("#scripturl").val();
var loaderurl = $j("#loaderurl").val();
var dataString = 'com_id_del=' + com_id_del + '&scripturl=' + scripturl;
$j(".flashdel#"+com_id_del).show();
$j(".flashdel#"+com_id_del).fadeIn("slow").html('<img src="'+loaderurl+'" align="absmiddle"> <span class="loading">wird durchgeführt...</span>');
$j.ajax({
type: "POST",
url: scripturl,
data: dataString,
cache: false,
success: function(html){
$j(".picture_comments#"+com_id_del).fadeOut("slow");
$j(".flashdel#"+com_id_del).hide();
}
});
return false;
});
Der Teufel ist in der zweiten Zeile:
var com_id_del = $j(this).attr('id');
Die ID, die der sich da holt ist einfach nicht richtig, der holt sich immer die ID aus dem Kommentar, welches zuletzte erstellt wurde (oder irgend eine noch frühere).
Der neue "Löschen" Link, der durch mein PHP Script erzeugt wird und dann dynamisch mit dem neuen Kommentar angezeigt wird hat aber auf jedenfall die richtige ID, das habe ich schon X-Mal kontrolliert.
Warum wird also
var com_id_del = $j(this).attr('id');
nicht nochmal korrekt ausgeführt um die neue ID zu bekommen, wenn ich schon per live() das ganze eben Live halten will um per AJAX nachgeladenen Elemente zu holen?
gruß