Ich habe ein natives Javascript-Objekt, das ich würdeWeisen Sie gerne den .ajaxSuccess-Rückruf zu. Der Grund dafür ist, dass mein Datenmodell nach einem erfolgreichen Ajax-Aufruf aktualisiert werden soll, ich aber nicht möchte, dass mein Datenmodell für die gesamte Javascript-Datei global ist. Und ja, ich habe zuvor überprüft, ob meine jQuery enthalten ist meine Skriptdatei.
Hier ist der Code:
$("#formButtonAddLink").click(function() {
$.ajax({
type: "POST",
url: "ajax/addlink",
data: {content: $("#formInputLinkContent").val(), subject: $("#formInputLinkSubject").val()},
dataType: "json",
error: function() {
alert("An ajax error occured adding link")
}
});
return false; //prevents html form submit
})
$(document).ready(function(){
var links = new Links(20,0);
$(links).ajaxSuccess(function() {
console.log("Hey.") //This does not work.
});
$(document).ajaxSuccess(function() {
console.log("Document hey.") //This shows up.
});
});
Antworten:
1 für die Antwort № 1Die Grundidee von ajaxSuccess()
ist:
Immer wenn eine Ajax-Anfrage erfolgreich abgeschlossen wird, löst jQuery die aus AjaxSuccess-Ereignis. Alle Handler, die bei registriert wurden Die .ajaxSuccess () -Methode wird zu diesem Zeitpunkt ausgeführt.
Soweit ich das verstehe aus dem Dokumentation du kannst nur das anhängen ajaxSuccess()
Ereignishandler an einen Element, kein JavaScript-Objekt. Aus diesem Grund funktioniert es, wenn der Ereignishandler an den angehängt wird document
.
Wir können unseren Event-Handler an jedes Element anhängen.
In diesem Fall, wenn Sie etwas Ähnliches haben wie:
<div class="links"></div>
Du könntest es tun:
$(document).ready(function(){
$(".links").ajaxSuccess(function() {
console.log("Hey.")
// use links in here:
var links = new Links(20,0);
});
});