2010-08-23 14 views
0

J'essaie de fermer une boîte de dialogue ouverte à la fin d'un appel de fonction et d'utiliser également mon élément bouton actuel pour fermer la boîte de dialogue. Voici le code qui ouvre la boîte de dialogue. Il est appelé dynamiquement en utilisant l'attribut 'rel' de '.modal_btn'. Il ouvre comme prévu:jQuery UI ferme le dialogue dynamique ... ou juste la boîte de dialogue ouverte

modalDialog = function(dialogId){ 
     $(dialogId).dialog({ 
      modal: true, 
      draggable: false, 
      resizable: false, 
      width: 'auto', 
      open: function() { $(".ui-dialog-titlebar-close").hide(); } 
     }); 
    } 

    $('.modal_btn').live('click', function(){ 
     var dialogId = $(this).attr('rel'); 
     modalDialog(dialogId); 
    }); 

Maintenant, après la boîte de dialogue est ouverte, je voudrais utiliser mes éléments actuels HTML pour les boutons: un bouton Annuler et. Le bouton de sauvegarde exécute l'appel ajax et une fois l'appel ajax terminé, je voudrais fermer la boîte de dialogue. De plus, j'aimerais pouvoir fermer la boîte de dialogue en cliquant sur le bouton Annuler. Je ne peux pas sembler saisir cette fonctionnalité simple ... des idées?

Répondre

2

$(dialogId).dialog('close');?

Modifier en réponse à un commentaire:

Eh bien, que diriez-vous alors. Dans votre fonction modalDialog, appliquez une classe à la boîte de dialogue elle-même: $(dialogId).addClass('currently-open-dialog').

Ensuite, votre fonction de fermeture de clic peut faire $('.currently-open-dialog').removeClass('currently-open-dialog').dialog('close');

+0

oui qui était ma première pensée, mais dialogId n'est pas défini par le clic du bouton de dialogue fermer ... permet de dire la classe est « .close_dialog_btn » ... merci pour la une réponse rapide! – PropSoft

+0

Edité avec une solution possible à cela. – Stuart

+0

brillant! aime la créativité Stuart. Je vous remercie! – PropSoft

1

deux façons de mettre du texte sur le bouton: Standard annuler et littéral. méthode d'action de base même cependant:

'Yes, Save and Exit': function() 
      { 
       callMyAjaxFuction(); 
       $(this).dialog('close'); 
          }, 
      Cancel: function() 
      { 
       $(this).dialog('close'); 
      }