2016-06-16 8 views
0

Ich habe einen Dialog definiert mit jQuery UI auf diese Weise:Alter Verhalten von jQuery UI Dialog

this.dialog = $.dialog({ 
    title: 'Title', 
    open: function() { 
     //do something 
    }, 
    close: function() { 
     //do something else 
    } 
}); 

Wie kann mich zu einem späteren Zeitpunkt in meinem Code, um das Verhalten der close Methode überschreiben?

+0

Sie sollten genau erklären, was Sie tun möchten, schließen ist in der Nähe, ich nehme an, Sie möchten etwas anderes tun, wenn die Schließen-Taste gedrückt wird, wie was genau? –

+0

@LawrenceEdel Ich möchte einige benutzerdefinierte Logik anwenden (z. B. eine Bestätigungsmeldung vor dem Schließen anzeigen), wenn der Benutzer auf die Schließen-Schaltfläche klickt und basierend auf einer Bedingung die ursprüngliche 'close'-Methode tatsächlich aufruft oder nicht – marcosh

Antwort

2

Ja, Sie können dialogclose aufrufen, um einen Dialog später zu schließen.

$('div#dialogbox').on('dialogclose', function(event) { 
    // your code goes here. 
}); 
+0

Um dies zu verdeutlichen Anfügen eines Event-Handlers, der beim Schließen des Dialogs aufgerufen wird. –

+0

Mit diesem Ansatz ist es möglich zu vermeiden, dass der Code in der ursprünglichen 'close' Methode aufgerufen werden? – marcosh

0

Ich löste es das dialogbeforeclose Ereignis verwenden.

this.dialog.on('dialogbeforeclose', function() { 
    // some code 
}); 

Wenn ich false vom Rückruf zurückkehren, die close Methode wird nicht ausgeführt.