mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-03 19:45:44 -05:00
Implement MouseEvent#currentTarget and document MouseEvent#target.
Relates to #995
This commit is contained in:
parent
f97143d37d
commit
f133475405
2 changed files with 26 additions and 1 deletions
|
@ -80,10 +80,14 @@ var Emitter = {
|
|||
var handlers = this._callbacks && this._callbacks[type];
|
||||
if (!handlers)
|
||||
return false;
|
||||
var args = [].slice.call(arguments, 1);
|
||||
var args = [].slice.call(arguments, 1),
|
||||
setTarget = event && 'target' in event &&
|
||||
!('currentTarget' in event);
|
||||
// Create a clone of the handlers list so changes caused by on / off
|
||||
// won't throw us off track here:
|
||||
handlers = handlers.slice();
|
||||
if (setTarget)
|
||||
event.currentTarget = this;
|
||||
for (var i = 0, l = handlers.length; i < l; i++) {
|
||||
if (handlers[i].apply(this, args) === false) {
|
||||
// If the handler returns false, prevent the default behavior
|
||||
|
@ -94,6 +98,8 @@ var Emitter = {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (setTarget)
|
||||
delete event.currentTarget;
|
||||
return true;
|
||||
},
|
||||
|
||||
|
|
|
@ -51,6 +51,25 @@ var MouseEvent = Event.extend(/** @lends MouseEvent# */{
|
|||
* @type Point
|
||||
*/
|
||||
|
||||
/**
|
||||
* The item that dispatched the event. It is different from
|
||||
* {@link #currentTarget} when the event handler is called during
|
||||
* the bubbling phase of the event.
|
||||
*
|
||||
* @name MouseEvent#target
|
||||
* @type Item
|
||||
*/
|
||||
|
||||
/**
|
||||
* The current target for the event, as the event traverses the scene graph.
|
||||
* It always refers to the element the event handler has been attached to as
|
||||
* opposed to {@link #target} which identifies the element on
|
||||
* which the event occurred.
|
||||
*
|
||||
* @name MouseEvent#currentTarget
|
||||
* @type Item
|
||||
*/
|
||||
|
||||
// DOCS: document MouseEvent#delta
|
||||
/**
|
||||
* @name MouseEvent#delta
|
||||
|
|
Loading…
Reference in a new issue