Ich habe den folgenden Javascript jquery ajax Aufruf, der innerhalb einer for Schleife ist.Mehrfache Ereignisbindung auf dynamisch hinzugefügte Elemente
Diese Schleife ruft eine externe API auf und hängt eine Eingabeschaltfläche an ein HTML-Element an. Wenn diese Schaltfläche gedrückt wird, sollte ein Popup-Warnfeld angezeigt werden, das jedoch mehrere Male eingeblendet wird, wenn die for-Schleife dieses Klickereignis mehrmals an die Schaltfläche anfügt.
Ich habe auch versucht, die .click() außerhalb der for-Schleife, aber das scheint nicht zu arbeiten, weder wie der Ajax ist ein asynchron und das Ereignis .click() wird nicht an etwas seit seiner Außenseite angeschlossen der Strömung.
Ich habe versucht, dieses Problem zu googeln, aber die meisten Leute haben nur regelmäßige asynchrone Ajax-Probleme, aber dieses Mal ist es in einer Schleife und es scheint nicht viel Informationen über dieses Setup zu sein.
- Wie würde man diesen Code reparieren oder verbessern? Ich bin mir sicher, es ist nicht das effizienteste Setup.
- Muss ich eine Rückruffunktion verwenden?
-Code
function successHandler(data, textStatus, jqXHR) {
jj = '<input class ="submitAsset"type="submit" value="'+ data
+'">';
jQuery("#example").append(jj);
jQuery('.submitAsset').on("click", function() {
alert("clicked");
}); //function click
} //function successHandler
for (i=0;i < 9; i++) {
$.ajax({
dataType: 'json',
url: 'http://example.com',
success: successHandler
});//ajax call-- get required information
}//for
Ich denke, das erste ist effizienter als das zweite. –