2009-03-06 13 views
0

Ich muss wissen, ob es ein Ereignis gibt, das ausgelöst wird, wenn ein Element Rendering abgeschlossen wird. Ich habe ein Div sagen mit ID A. Jetzt bin ich das Erstellen und Rendern dieses div mit Ajax und müssen auf Elemente innerhalb div zuzugreifen. Wie kann ich es tun. Versucht mit $ ("# A"). Init(). Es funktioniert nicht.Ajax Anruf abgeschlossen Ereignis

Antwort

2

Wenn Sie Ihr div mit einem Ajax-Aufruf aktualisieren, kann eine Callback-Funktion zu den Parametern hinzugefügt werden. Diese Callback-Funktion wird ausgeführt werden, sobald die Ajax-Aufruf abgeschlossen:

$("#A").load(url, parameters, function() { 
    // access elements inside div here 
}); 
+0

Ich werde das am Montag überprüfen. Danke vielmals. – Tanmoy

0

Der offensichtliche Weg ist, Ihre Manipulation in den Callback des Load/Ajax/Post/etc AJAX Anrufs zu bringen. Wenn Sie das nicht tun kann (warum auch immer), vielleicht ist dies das ajaxComplete Ereignis ist, was Sie nach:

$("#msg").ajaxComplete(function(request, settings){ 
    $(this).append("<li>Request Complete.</li>"); 
}); 

Natürlich muss man erkennen, dass es die richtige Ajax nennen das abgeschlossen ist, aber vielleicht hilft .

0

Ich habe ein ähnliches Problem viele Male konfrontiert. Ich gab fast auf, bis ich die detaillierte Dokumentation der .on() Funktion durchging.

Normalerweise unter Verwendung .on() Funktion legen wir Ereignishandler wie folgt vor:

$("#dataTable tbody tr").on("click",function() { 
     alert($(this).text()); 
    }); 

Aber durch delegierte-Ereignisse nähern wir gleiche erreichen können durch:

$("#dataTable tbody").on("click","tr",function() { 
     alert($(this).text()); 
    }); 

hier, auch wenn Die Tabellenzeilen, dh tr-Elemente, werden durch einen Ajax-Aufruf aktualisiert, der obige Code bleibt jedoch weiterhin angehängt und würde weiterhin beabsichtigte Aktionen ausführen.

Ich denke, das löst Ihre Frage.