From d94afbee78a065169928bedbe4d9c3a5e20eeaec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Sat, 21 Feb 2009 17:02:52 +0000 Subject: [PATCH] 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. --- ui/ui.dialog.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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() {