Skip to content

Commit d94afbe

Browse files
committed
Dialog: When animating dialog close, wait until after the animation completes before triggering the close event. Fixes #4207 - Dialog close event occurs too early with hide effect.
1 parent 3342fb8 commit d94afbe

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

ui/ui.dialog.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,19 +154,24 @@ $.widget("ui.dialog", {
154154
},
155155

156156
close: function(event) {
157-
if (false === this._trigger('beforeclose', event)) {
157+
var self = this;
158+
159+
if (false === self._trigger('beforeclose', event)) {
158160
return;
159161
}
160162

161-
(this.overlay && this.overlay.destroy());
162-
this.uiDialog
163-
.hide(this.options.hide)
164-
.unbind('keypress.ui-dialog');
163+
(self.overlay && self.overlay.destroy());
164+
self.uiDialog.unbind('keypress.ui-dialog');
165+
166+
(self.options.hide
167+
? self.uiDialog.hide(self.options.hide, function() {
168+
self._trigger('close', event);
169+
})
170+
: self._trigger('close', event));
165171

166-
this._trigger('close', event);
167172
$.ui.dialog.overlay.resize();
168173

169-
this._isOpen = false;
174+
self._isOpen = false;
170175
},
171176

172177
isOpen: function() {

0 commit comments

Comments
 (0)