Ich schreibe gerade alle meine Ajax-Aufrufe um die jquery-Methode (viel sauberer Code!) Zu verwenden und haben eine Standard-AjaxError-Funktion, wie folgt dargestellt:
$(document).ajaxError(function(event, request, settings){
alert("there was some error.. boo");
});
mit einer eigenen definierten Fehlerfunktion Meines ajax-Aufruf, dass ich der Standard nicht oben will für Feuer:
$.ajax({ url: url,
success: function(data){
// do something
},
error: function (r, textStatus, errorThrown) {
// let's do something here regarding the error
alert("Oh no! Something went terribly wrong in here!");
// just trying this to see if it will stop any other events (ie default ajaxError)
event.stopImmediatePropagation();
}
});
aber jetzt habe ich ein paar ajax-Aufrufe, wo ich einen Fehler erklären will Funktion im Ajax-Aufruf. Ich hatte gehofft, dass durch die Deklaration einer Fehlerfunktion im Ajax-Aufruf der Standardfehler-Aufruf, den ich definiert habe, ersetzt würde. Aber das scheint nicht der Fall zu sein, da ich weiterhin zuerst meinen Ajax-Funktionsfehler-Aufruf bekomme, dann sehe ich auch den obigen Code ausführen.
Ich habe versucht, event.stopImmediatePropagation() aus meiner Ajax-Fehlerfunktion heraus zu starten, in der Hoffnung, dass es weitere Ereignisse abbricht (dh: das Standardfehlerereignis), aber das hat nichts getan außer mir in Firefox zu sagen, dass "Ereignis" war undefiniert.
Irgendwelche Ideen? Ich hatte gehofft, ich müsste nicht durchgehen und für JEDEN Ajax-Aufruf eine Fehlerfunktion definieren. Wenn es darauf ankommt, werde ich es tun. Ich dachte, ich würde fragen.
Danke, Matt
Was passiert, wenn ich will nur Überschreiben Sie die Fehlerfunktion? Ich möchte alle anderen globalen Funktionen behalten, die gesetzt werden könnten (zB ajaxSend, ajaxComplete)? –
@John - Lassen Sie einfach die Funktionen, die Sie nicht überschreiben möchten und die Globals verwendet werden :) –