2010-03-25 2 views
1

J'ai des tonnes de composants ajax sur ce moteur de réservation. J'ai besoin de personnaliser le texte à l'intérieur du modal pour chacun des composants à la suite.Existe-t-il une manière intelligente de personnaliser le texte de message ajax dans jQuery?

I ajouté:

$('#loader').bind('ajaxStart', function() { 
     $(this).show().addClass('modalOpen'); 
    }).bind('ajaxComplete', function() { 
     $(this).removeClass('modalOpen').hide() 
    }); 

est-il un moyen avancé de changer le texte à l'intérieur de l'élément de chargement avant que je ne .ajax séparer les appels? Ou dois-je juste faire manuellement quelque chose comme

$('#loader').text('blah'); 
$.ajax({}) 

De plus, cela peut sembler idiot, mais est-il un moyen de ne pas avoir le chargeur apparaissent pour certains composants? Sinon je suppose que je vais devoir faire quelque chose comme

$('someel').someEvent(function() { 
    $('#loader').addClass('override-hide'); 
    $.ajax({ 
     success:function() { 
      $('#loader').removeClass('override-hide'); 
     } 
    }) 
}) 

#loader.override-hide { display:none !important; } 

Répondre

3

j'utiliser la fonction de rappel beforeSend pour vos deux exemples:

$.ajax({ 
    beforeSend: function() { 
     $('#loader').text('Message for this call').show(); 
    }, 
    success:function() { 
     $('#loader').hide(); 
    } 
}); 

quitter Juste .show()/.hide() ou .text() si vous ne Je ne veux pas qu'il soit montré ou le message a changé, ce que vous voulez dans chaque cas.

See a full list of events here

+0

vous avez probablement Craver @ Nick voulait dire '$ ('# chargeur') texte (" Message pour cet appel) show();.. '+1 – ant

+0

@ c0mrade Woops, vous avez raison, merci @Sohnee –

Questions connexes