ich mehrere divs haben, wo die AJAX Inhalte gepostet werden ...
Ajax Lasten etwas von dem Server, ist es nicht alles überall posten. Der ajaxComplete
Aufruf wird nicht spezifisch für irgendeinen Container sein div
weil, nun, es gibt keine.
Wenn Sie die load
method verwenden, die ein verkürztes Verfahren, die einen Ajax-Aufruf tut und dann legt das Ergebnis in einem bestimmten Behälter, die Informationen darüber, welche Container sie es ausdrückt in an ajaxComplete
nicht weitergegeben (at mindestens, nicht nach the documentation). Sie müssen diese load
Anrufe in separate ajax
und text
/html
Anrufe (siehe Details in der load
Dokumentation) und etwas von Ihrer eigenen konvertieren entlang dieser Informationen oder schreiben Sie Ihre eigenen Wrapper für load
passieren die load
‚s verwendet vollständiger Handler, um diese Informationen weiterzugeben.
Re Ihr Kommentar:
ist es wie ein General über Hörer wölbt, dass alle Lasten erfassen wird und geladen wurden, welche der Behälter herausfinden?
Nicht, dass ich weiß. Sie könnten Ihre eigene spezielle load
Funktion erstellen und hat ein benutzerdefiniertes Ereignis ausgelöst, behandelt dann das benutzerdefinierte Ereignis am document
Ebene:
unsere eigene „load mit Ereignisse“ Add-Funktion (einmal):
jQuery.fn.loadWithEvent = function() {
var t = this;
t.load.apply(t, arguments).then(function() {
t.trigger(jQuery.Event("ajaxload"));
});
};
einen allgemeinen Handler für dieses Ereignis hinzufügen (einmal):
$(document).on("ajaxload", function(e) {
// Here, e.target is the element it was fired on
console.log("got it on document", e.target);
});
es verwenden (so oft wie nötig):
$("#target").loadWithEvent("/some/url");
Wenn Sie ES2015 verwenden (auch bekannt als "ES6"), die loadWithEvent
Funktion kann ein wenig einfacher sein:
jQuery.fn.loadWithEvent = function(...args) {
this.load(...args).then(() => {
this.trigger(jQuery.Event("ajaxload"));
});
};
Gut für den Anfang, 'responseText' ist, gut , ** Text ** (ein String). Strings haben keine "Eltern" -Methode. –
Wie werden die Ereignisse ausgelöst? Sie sollten in der Event-Listener-Funktion "this" verwenden können. – David