mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Widget factory: Fixed event triggering (again).
Draggable: To modify the position during drag, you now set ui.position instead of returning new coords.
This commit is contained in:
parent
3ead714520
commit
41ed54aaf6
@ -370,20 +370,13 @@ $.widget.prototype = {
|
|||||||
eventName = (type == this.widgetEventPrefix
|
eventName = (type == this.widgetEventPrefix
|
||||||
? type : this.widgetEventPrefix + type);
|
? type : this.widgetEventPrefix + type);
|
||||||
|
|
||||||
// event can be null, a hash, a native event, a fixed event
|
event = $.Event(event);
|
||||||
event = event ? $.extend(event, $.Event()) : $.Event();
|
|
||||||
event.type = eventName;
|
event.type = eventName;
|
||||||
|
|
||||||
this.element.trigger(event, data);
|
this.element.trigger(event, data);
|
||||||
var callbackResult = callback
|
|
||||||
? callback.call(this.element[0], event, data)
|
|
||||||
: undefined;
|
|
||||||
|
|
||||||
event.result = callbackResult !== undefined
|
return !(callback && callback.call(this.element[0], event, data) === false
|
||||||
? callbackResult
|
|| event.isDefaultPrevented());
|
||||||
: event.result;
|
|
||||||
|
|
||||||
return event.result !== false;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -125,7 +125,11 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, {
|
|||||||
this.positionAbs = this._convertPositionTo("absolute");
|
this.positionAbs = this._convertPositionTo("absolute");
|
||||||
|
|
||||||
//Call plugins and callbacks and use the resulting position if something is returned
|
//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 != "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';
|
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
|
// From now on bulk stuff - mainly helpers
|
||||||
|
|
||||||
_trigger: function(type, event) {
|
_trigger: function(type, event, ui) {
|
||||||
$.ui.plugin.call(this, type, [event, this._uiHash()]);
|
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
|
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 $.widget.prototype._trigger.call(this, type, event, ui);
|
||||||
return event.returnValue;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
plugins: {},
|
plugins: {},
|
||||||
|
Loading…
Reference in New Issue
Block a user