diff options
author | Scott González <scott.gonzalez@gmail.com> | 2008-09-14 14:48:16 +0000 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2008-09-14 14:48:16 +0000 |
commit | 608cab6e3bc43475305cddd4bc50cba6e18069a8 (patch) | |
tree | b7b0594dde6968593cd862bc6b059d911551650f /ui | |
parent | 8bd855a162784f138ed8764692d472d97c725fcb (diff) | |
download | jquery-ui-608cab6e3bc43475305cddd4bc50cba6e18069a8.tar.gz jquery-ui-608cab6e3bc43475305cddd4bc50cba6e18069a8.zip |
Dialog: Fixed #3389: Non-draggable dialogs shouldn't instantiate draggables.
Diffstat (limited to 'ui')
-rw-r--r-- | ui/ui.dialog.js | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index d1438fff9..ec38a983d 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -111,26 +111,7 @@ $.widget("ui.dialog", { $.ui.disableSelection(this); }); - if ($.fn.draggable) { - uiDialog.draggable({ - cancel: '.ui-dialog-content', - helper: options.dragHelper, - handle: '.ui-dialog-titlebar', - start: function() { - self._moveToTop(); - (options.dragStart && options.dragStart.apply(self.element[0], arguments)); - }, - drag: function() { - (options.drag && options.drag.apply(self.element[0], arguments)); - }, - stop: function() { - (options.dragStop && options.dragStop.apply(self.element[0], arguments)); - $.ui.dialog.overlay.resize(); - } - }); - (options.draggable || uiDialog.draggable('disable')); - } - + (options.draggable && $.fn.draggable && this._makeDraggable()); (options.resizable && $.fn.resizable && this._makeResizable()); this._createButtons(options.buttons); @@ -171,6 +152,28 @@ $.widget("ui.dialog", { }); }, + _makeDraggable: function() { + var self = this, + options = this.options; + + this.uiDialog.draggable({ + cancel: '.ui-dialog-content', + helper: options.dragHelper, + handle: '.ui-dialog-titlebar', + start: function() { + self._moveToTop(); + (options.dragStart && options.dragStart.apply(self.element[0], arguments)); + }, + drag: function() { + (options.drag && options.drag.apply(self.element[0], arguments)); + }, + stop: function() { + (options.dragStop && options.dragStop.apply(self.element[0], arguments)); + $.ui.dialog.overlay.resize(); + } + }); + }, + _setData: function(key, value){ (setDataSwitch[key] && this.uiDialog.data(setDataSwitch[key], value)); switch (key) { @@ -178,7 +181,9 @@ $.widget("ui.dialog", { this._createButtons(value); break; case "draggable": - this.uiDialog.draggable(value ? 'enable' : 'disable'); + (value + ? this._makeDraggable() + : this.uiDialog.draggable('destroy')); break; case "height": this.uiDialog.height(value); |