From: Scott González Date: Sat, 21 Feb 2009 17:02:52 +0000 (+0000) Subject: Dialog: When animating dialog close, wait until after the animation completes before... X-Git-Tag: 1.7~52 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d94afbee78a065169928bedbe4d9c3a5e20eeaec;p=jquery-ui.git 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. --- diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index 18f4bb6b7..6045fb51f 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -154,19 +154,24 @@ $.widget("ui.dialog", { }, close: function(event) { - if (false === this._trigger('beforeclose', event)) { + var self = this; + + if (false === self._trigger('beforeclose', event)) { return; } - (this.overlay && this.overlay.destroy()); - this.uiDialog - .hide(this.options.hide) - .unbind('keypress.ui-dialog'); + (self.overlay && self.overlay.destroy()); + self.uiDialog.unbind('keypress.ui-dialog'); + + (self.options.hide + ? self.uiDialog.hide(self.options.hide, function() { + self._trigger('close', event); + }) + : self._trigger('close', event)); - this._trigger('close', event); $.ui.dialog.overlay.resize(); - this._isOpen = false; + self._isOpen = false; }, isOpen: function() {