J'essaie d'utiliser une boîte de dialogue modale UI jQuery comme indicateur de chargement via les événements ajaxStart, ajaxStop/ajaxComplete. Lorsque la page se déclenche, un gestionnaire Ajax charge des données et la boîte de dialogue modale s'affiche correctement. Cependant, il ne masque ni ne ferme jamais la boîte de dialogue lorsque l'événement Ajax est terminé. C'est un très petit morceau de code du serveur local qui est retourné, donc l'événement Ajax réel est très rapide.Boîte de dialogue modale jQuery sur l'événement ajaxStart
Voici mon code actuel pour la div modale:
$("#modalwindow").dialog({
modal: true,
height: 50,
width: 200,
zIndex: 999,
resizable: false,
title: "Please wait..."
})
.bind("ajaxStart", function(){ $(this).show(); })
.bind("ajaxStop", function(){ $(this).hide(); });
L'événement Ajax est juste une vanilles $.ajax({})
appel de méthode GET. Basé sur une recherche ici et Google, j'ai essayé de modifier le gestionnaire ajaxStop pour utiliser $("#modalwindow").close()
, $("#modalwindow").destroy()
, etc (#modalwindow désignée ici pour donner un contexte explicite).
J'ai également essayé d'utiliser le standard $("#modalwindow").dialog({}).ajaxStart(...
.
Dois-je relier les événements à un objet différent? Ou les appeler à partir de l'événement complet $.ajax()
?
Je devrais mentionner, je suis en train de tester sur la dernière IE8, FF 3.6 et Chrome. Tous ont le même effet/similaire.
Vous devez marquer ceci comme la réponse à votre question. – ahsteele