aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2009-01-15 19:40:11 +0000
committerScott González <scott.gonzalez@gmail.com>2009-01-15 19:40:11 +0000
commit41ed54aaf6aba6cf06c0c5a753d6e8e8673d1734 (patch)
treefee8313e2df346fb9c72d840e0c3c50c4d66d5bd /ui
parent3ead714520d7da6cdbeb6639df34a32d855c75ca (diff)
downloadjquery-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.js15
-rw-r--r--ui/ui.draggable.js14
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: {},