Ich versuche, Inhalt mit einem AJAX-Aufruf zu laden, und NACH dem Laden des Inhalts führen Sie eine andere Aktion durch. In meinem Beispiel ist diese letztere Aktion einfach eine Warnung, aber in meinem realen Beispiel versuche ich mich auf ein Eingabefeld zu konzentrieren.jQuery .load() Callback
$("#box").load("/favicon.png", function(response) {
alert('do after the load');
});
https://jsfiddle.net/u0cmmn5h/
Wie Sie in der Geige sehen können, ist der Alarm ausgelöst wird, bevor das Favicon tatsächlich geladen. Soll die Funktion nicht ausgelöst werden, nachdem der Inhalt geladen wurde?
"Warnmeldungen" und ähnliche OS-Popups sind schlechtes Design, da sie aufdringlich und blockierend sind, die Ausführung des Seitencodes wird nur fortgesetzt, wenn eine bestimmte Benutzeraktion ausgeführt wird. Verwenden Sie nach Möglichkeit eine benutzerdefinierte Lösung. In Ihrem Fall sollten Sie besser mit 'console.log ('tun nach dem Laden');' zu Testzwecken gehen. –
Sie könnten die Funktion in [Versprechen] (https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise) oder [jQuerys äquivalentes verzögertes Objekt] (https: //api.jquery) einbinden .com/jQuery.Deferred /), so dass es mit '.then (function() {})' und anderen verknüpft werden kann. Versprechen werden aufgelöst, wenn der JavaScript-Code aufgelöst wird. Dies ist möglicherweise nicht der genaue Zeitpunkt, zu dem das Bild auf dem Bildschirm angezeigt wird. –