Y a-t-il un équivalent jQuery à ce code prototype?
Ajax.Responders.register({
onException: function(x,y)
{
if(y.message!="Syntax error") new Insertion.After("toperrorbox","<p style='color:red'>"+y.message+"</p>");
}
});
3 Réponses :
Je ne connais pas le prototype, mais je suis sûr que c'est quelque chose comme ceci: éditer:
Ou vous pouvez essayer avec quelque chose de plus global: p>
Le deuxième exemple nécessite un objet JQuery comme base.
http://docs.jquerer.com/ajax/ajaxerror#exemples
$('#toperrorbox').ajaxError(function (event, request, settings) {
$(this).after("<p style='color:red'>"+ request.responseText +"</p>");
}
Êtes-vous sûr que le responsable est défini sur un message d'erreur sur l'échec? (sur tous les navigateurs?)
Finalement, je vais utiliser ceci: $ (). AjaxError (fonction (e, r) {$ ("# topnav"). Après ("
" + r.staustext + " P > "); tes réponses gagnent en raison de la brièveté
Prototype La syntaxe est un peu différente, due à la nature de JQuery, mais quelque chose de similaire à cela devrait faire l'astuce: p> dans ce cas, Il convient de noter qu'avec JQuery, tous les événements sont toujours liés à quelque chose. Habituellement, un nœud DOM, mais éventuellement la fenêtre Ajax.Restics Code> Les auditeurs globaux écoutent tous les événements Ajax. JQuery a effectivement un équivalent. Le global Events Ajax . xmlhttprequest.responseText code> contiendra le corps (le cas échéant) renvoyé du serveur sur la demande échouée. Et ThroftError code> contiendra l'exception réelle, que je crois que vous êtes réellement après. Mais, je vous recommanderais de vérifier si une exception était en effet adoptée avant d'essayer d'imprimer son message, ce que j'ai fait dans mon exemple. S'il a attrapé une exception, cela utilisera ce message, mais sinon, cela utilisera la réponse du serveur. P> code> ou le document code>. Si vous vouliez faire la même chose, sans liaison à l'élément spécifique pour agir (comme l'exemple ci-dessus), vous pouvez lier l'événement à la fenêtre code> code> et sélectionnez l'élément (s) à travailler sur Dans votre rappel comme ceci: p> $(window).bind('ajaxError', function (event, XMLHttpRequest, ajaxOptions, thrownError) {
// thrownError only passed if an error was caught
// this == dom element listening
var message = thrownError === undefined? XMLHttpRequest.responseText : thrownError.message;
$('#toperrorbox').after("<p style='color:red'>"+ message +"</p>");
}