diff options
author | Scott González <scott.gonzalez@gmail.com> | 2009-01-15 19:40:11 +0000 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2009-01-15 19:40:11 +0000 |
commit | 41ed54aaf6aba6cf06c0c5a753d6e8e8673d1734 (patch) | |
tree | fee8313e2df346fb9c72d840e0c3c50c4d66d5bd /ui | |
parent | 3ead714520d7da6cdbeb6639df34a32d855c75ca (diff) | |
download | jquery-ui-41ed54aaf6aba6cf06c0c5a753d6e8e8673d1734.tar.gz jquery-ui-41ed54aaf6aba6cf06c0c5a753d6e8e8673d1734.zip |
Widget factory: Fixed event triggering (again).
Draggable: To modify the position during drag, you now set ui.position instead of returning new coords.
Diffstat (limited to 'ui')
-rw-r--r-- | ui/ui.core.js | 15 | ||||
-rw-r--r-- | ui/ui.draggable.js | 14 |
2 files changed, 13 insertions, 16 deletions
diff --git a/ui/ui.core.js b/ui/ui.core.js index 4afd2066f..c77e99999 100644 --- a/ui/ui.core.js +++ b/ui/ui.core.js @@ -370,20 +370,13 @@ $.widget.prototype = { eventName = (type == this.widgetEventPrefix ? type : this.widgetEventPrefix + type); - // event can be null, a hash, a native event, a fixed event - event = event ? $.extend(event, $.Event()) : $.Event(); + event = $.Event(event); event.type = eventName; this.element.trigger(event, data); - var callbackResult = callback - ? callback.call(this.element[0], event, data) - : undefined; - - event.result = callbackResult !== undefined - ? callbackResult - : event.result; - - return event.result !== false; + + return !(callback && callback.call(this.element[0], event, data) === false + || event.isDefaultPrevented()); } }; diff --git a/ui/ui.draggable.js b/ui/ui.draggable.js index 8eb60b56c..15d6cf440 100644 --- a/ui/ui.draggable.js +++ b/ui/ui.draggable.js @@ -125,7 +125,11 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, { this.positionAbs = this._convertPositionTo("absolute"); //Call plugins and callbacks and use the resulting position if something is returned - if(!noPropagation) this.position = this._trigger("drag", event) || this.position; + if (!noPropagation) { + var ui = this._uiHash(); + this._trigger('drag', event, ui); + this.position = ui.position; + } if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; @@ -368,11 +372,11 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, { // From now on bulk stuff - mainly helpers - _trigger: function(type, event) { - $.ui.plugin.call(this, type, [event, this._uiHash()]); + _trigger: function(type, event, ui) { + ui = ui || this._uiHash(); + $.ui.plugin.call(this, type, [event, ui]); if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins - $.widget.prototype._trigger.call(this, type, event, this._uiHash()); - return event.returnValue; + return $.widget.prototype._trigger.call(this, type, event, ui); }, plugins: {}, |