Jquery UI Dialog Confirm: errore sulla chiusura della finestra

felino

Utente Attivo
12 Dic 2013
941
10
18
Aci Catena (Catania)
Salve a tutti,
ho creato una funziona generica per la visualizzazione della finestra di conferma sull'operazione da eseguire.

Ovviamente, nel caso in cui l'utente seleziona 'SI' viene eseguita una funzione di callback, ma purtroppo la mia finestra rimane aperta e non si chiude!

Così ho pensato ad associare una function per la chiusura della finestra, ma ottengo:
Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'

Qui un esempio di ciò che ho creato (anche se fa riferimento all'esempio standard): Link JsFiddle

Codice:
$( "#dialog-confirm" ).dialog({
      resizable: false,
      height:140,
      modal: true,
      buttons: {
        "YES": function() {
          alert('ciao');
          MessageBox_close();
        },
        Cancel: function() {
          MessageBox_close();
        }
      }
    });


function MessageBox_close()
{
    $(this).dialog('close');
}

Cosa suggerite?

Grazie.
 
Ciao,non puoi usare this all'esterno del metodo dialog
guarda che cosi funziona
Codice:
$( "#dialog-confirm" ).dialog({
                    resizable: false,
                    height:140,
                    modal: true,
                    buttons: {
                        "YES": function() {
                            alert('ciao');
                            $( this ).dialog( "close" );
                        },
                        Cancel: function() {
                            $( this ).dialog( "close" );
                        }
                    }
                });
 
Infatti, se cambio il codice così funziona correttamente.

Ma nel mio progetto invece facendo la stessa operazione ottengo sempre lo stesso errore:
Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'

e mi viene indicata la libreria jquery-1.11.0.min.js
 
Alla fine ho risolto così.

Codice:
$( "#dialog-confirm" ).dialog({
      resizable: false,
      height:140,
      modal: true,
      buttons: {
        "YES": function() {
          alert('ciao');
          MessageBox_close();
        },
        Cancel: function() {
          MessageBox_close();
        }
      }
    });


function MessageBox_close()
{
    $("#dialog-confirm").dialog('close');
}

Grazie a tutti.
 

Discussioni simili