Dialog: Update the internal flag for whether or not the dialog is open before triggering the close event.

Fixes #5184 - isOpen in dialogclose event is true.
This commit is contained in:
Scott González 2010-02-16 02:13:38 +00:00
parent 828bcdd2f0
commit c9f30818af
2 changed files with 16 additions and 2 deletions

View File

@ -26,4 +26,18 @@ test("#4826: setting resizable false toggles resizable on dialog", function() {
});
test("#5184: isOpen in dialogclose event is true", function() {
expect( 3 );
el = $( "<div></div>" ).dialog({
close: function() {
ok( !el.dialog("isOpen"), "dialog is not open during close" );
}
});
ok( el.dialog("isOpen"), "dialog is open after init" );
el.dialog( "close" );
ok( !el.dialog("isOpen"), "dialog is not open after close" );
el.remove();
});
})(jQuery);

View File

@ -188,6 +188,8 @@ $.widget("ui.dialog", {
(self.overlay && self.overlay.destroy());
self.uiDialog.unbind('keypress.ui-dialog');
self._isOpen = false;
(self.options.hide
? self.uiDialog.hide(self.options.hide, function() {
self._trigger('close', event);
@ -196,8 +198,6 @@ $.widget("ui.dialog", {
$.ui.dialog.overlay.resize();
self._isOpen = false;
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
if (self.options.modal) {
var maxZ = 0;