2012-05-10 11 views
8

Ho una finestra di dialogo che non si chiude quando si fa clic su "Salva" o "Annulla". Ho paragonato a jQuery UI's official demo page e non riesco a trovare il motivo per cui questo non funzionerebbe.La finestra di dialogo Jquery non si chiude

Ecco quello che ho:

$(function() { 
      $("#DetailsWindow").dialog({ 
       autoOpen: false, 
       resizable: false, 
       height: 500, 
       width: 600, 
       modal: true, 
       title: 'Appointment Details', 
       buttons: { 
        "Save": function() { 
         $(this).dialog("close"); 
        }, 
        "Cancel": function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 

      $('button').click(function() { 
       $("#DetailsWindow").dialog("open"); 
      }); 
     }); 

HTML:

<button>A button</button> 
     <div id="DetailsWindow"> 
      <h3>Title</h3> 
      <span>Some Text</span> 
     </div> 

risposta

15

Vostri criteri $('button') dovrebbe essere più restrittivo, altrimenti corrisponde a tutti i <button> tag sulla pagina, compresi quelli all'interno della finestra di dialogo jQuery , facendolo continuare ad aprirsi.

vorrei suggerire di aggiungere una classe al pulsante principale:

<button class="open-details">A button</button> 

e poi cambiare Javascript per:

$('button.open-details').click(function() { 
    $("#DetailsWindow").dialog("open"); 
}); 
+0

+1, questo è il problema. La finestra di dialogo viene chiusa, quindi immediatamente riaperta, poiché il gestore viene eseguito per i pulsanti "Salva" e "Annulla" nella finestra di dialogo. –

+1

La mia risposta era sbagliata, grazie @Rocket – MilkyWayJoe

+0

Citando il commento dalla risposta (ora rimossa): In realtà, è ciò che pensi che sia. All'interno di queste funzioni, questo è l'elemento DOM che hai chiamato .dialog. Dai documenti (sotto "Opzioni"> "pulsanti (oggetto)"): "Il contesto del callback è l'elemento di dialogo" – MilkyWayJoe

1

Provare a utilizzare:

$(this).dialog('destroy').remove(); 

Invece di:

$(this).dialog("close"); 
Problemi correlati