EventTarget Class
+ + + + +EventTarget provides the implementation for any object to +publish, subscribe and fire to custom events, and also +alows other EventTargets to target the object with events +sourced from the other object. +EventTarget is designed to be used with Y.augment to wrap +EventCustom in an interface that allows events to be listened to +and fired by name. This makes it possible for implementing code to +subscribe to an event that either has not been created yet, or will +not be created at all.
+Item Index
+ + +Methods
+ +-
+
+
- + _getFullType + + + + + +
- + _getType + + + + + +
- + _monitor + + + + + +
- + _parseType + + + + + +
- + _publish + + + + + +
- + addTarget + + + + + +
- + after + + + + + +
- + before + + + + + +
- + bubble + + + + + +
- + detach + + + + + +
- + detachAll + + + + + +
- + fire + + + + + +
- + getEvent + + + + + +
- + getTargets + + + + + +
- + on + + + + + +
- + once + + + + + +
- + onceAfter + + + + + +
- + parseType + + + + + +
- + publish + + + + + +
- + removeTarget + + + + + +
- + subscribe + + + + deprecated + + + +
- + unsubscribe + + + + deprecated + + + +
- + unsubscribeAll + + + + deprecated + + + +
Methods
+ + +_getFullType
+
+
+ -
+
+
-
+
+
type+ +
+
+
Returns the fully qualified type, given a short type string. +That is, returns "foo:bar" when given "bar" if "foo" is the configured prefix.
+ +NOTE: This method, unlike _getType, does no checking of the value passed in, and +is designed to be used with the low level _publish() method, for critical path +implementations which need to fast-track publish for performance reasons.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The short type to prefix
+
+
+
Returns:
+ +_getType
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ If the instance has a prefix attribute and the +event type is not prefixed, the instance prefix is +applied to the supplied type.
+_monitor
+
+
+ -
+
+
-
+
+
what+ +
+
+ -
+
+
eventType+ +
+
+ -
+
+
o+ +
+
+
This is the entry point for the event monitoring system. +You can monitor 'attach', 'detach', 'fire', and 'publish'. +When configured, these events generate an event. click -> +clickattach, clickdetach, click_publish -- these can +be subscribed to like other events to monitor the event +system. Inividual published events can have monitoring +turned on or off (publish can't be turned off before it +it published) by setting the events 'monitor' config.
+Parameters:
+ +-
+
+
-
+
+
what+ String + + + + +++ + +'attach', 'detach', 'fire', or 'publish'
+
+
+ -
+
+
eventType+ String | CustomEvent + + + + +++ + +The prefixed name of the event being monitored, or the CustomEvent object.
+
+
+ -
+
+
o+ Object + + + + +++ + +Information about the event interaction, such as + fire() args, subscription category, publish config
+
+
+
_parseType
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an array with the detach key (if provided), +and the prefixed event name from _getType +Y.on('detachcategory| menu:click', fn)
+_publish
+
+
+ -
+
+
-
+
+
fullType+ +
+
+ -
+
+
etOpts+ +
+
+ -
+
+
ceOpts+ +
+
+
The low level event publish implementation. It expects all the massaging to have been done
+outside of this method. e.g. the type to fullType conversion. It's designed to be a fast
+path publish, which can be used by critical code paths to improve performance.
Parameters:
+ +-
+
+
-
+
+
fullType+ String + + + + +++ + +The prefixed type of the event to publish.
+
+
+ -
+
+
etOpts+ Object + + + + +++ + +The EventTarget specific configuration to mix into the published event.
+
+
+ -
+
+
ceOpts+ Object + + + + +++ + +The publish specific configuration to mix into the published event.
+
+
+
Returns:
+ +etOpts or ceOpts, this will
+be the default CustomEvent instance, and can be configured independently.
+
+ addTarget
+
+
+ -
+
+
-
+
+
o+ +
+
+
Registers another EventTarget as a bubble target. Bubble order +is determined by the order registered. Multiple targets can +be specified.
+ +Events can only bubble if emitFacade is true.
+ +Included in the event-custom-complex submodule.
+Parameters:
+ +-
+
+
-
+
+
o+ EventTarget + + + + +++ + +the target to add
+
+
+
after
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Subscribe to a custom event hosted by this object. The +supplied callback will execute after any listeners add +via the subscribe method, and after the default function, +if configured for the event, has executed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +before
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes the callback before a DOM event, custom event +or method. If the first argument is a function, it +is assumed the target is a method. For DOM and custom +events, this is an alias for Y.on.
+ +For DOM and custom events: +type, callback, context, 0-n arguments
+ +For methods: +callback, object (method host), methodName, context, 0-n arguments
+Returns:
+ +bubble
+
+
+ -
+
+
-
+
+
evt+ +
+
+
Propagate an event. Requires the event-custom-complex module.
+Parameters:
+ +-
+
+
-
+
+
evt+ CustomEvent + + + + +++ + +the custom event to propagate
+
+
+
Returns:
+ +detach
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
context+ +
+
+
Detach one or more listeners the from the specified event
+Parameters:
+ +-
+
+
-
+
+
type+ String | Object + + + + +++ + +Either the handle to the subscriber or the + type of event. If the type + is not specified, it will attempt to remove + the listener from all hosted events.
+
+
+ -
+
+
fn+ Function + + + + +++ + +The subscribed function to unsubscribe, if not + supplied, all subscribers will be removed.
+
+
+ -
+
+
context+ Object + + + + +++ + +The custom object passed to subscribe. This is + optional, but if supplied will be used to + disambiguate multiple listeners that are the same + (e.g., you subscribe many object using a function + that lives on the prototype)
+
+
+
Returns:
+ +detachAll
+
+
+ -
+
+
-
+
+
type+ +
+
+
Removes all listeners from the specified event. If the event type +is not specified, all listeners from all hosted custom events will +be removed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The type, or name of the event
+
+
+
fire
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
arguments+ +
+
+
Fire a custom event by name. The callback functions will be executed +from the context specified when the event was created, and with the +following parameters.
+ +If the custom event object hasn't been created, then the event hasn't +been published and it has no subscribers. For performance sake, we +immediate exit in this case. This means the event won't bubble, so +if the intention is that a bubble target be notified, the event must +be published on this object first.
+ +The first argument is the event type, and any additional arguments are +passed to the listeners as parameters. If the first of these is an +object literal, and the event is configured to emit an event facade, +that object is mixed into the event facade and the facade is provided +in place of the original object.
+Parameters:
+ +-
+
+
-
+
+
type+ String | Object + + + + +++ + +The type of the event, or an object that contains +a 'type' property.
+
+
+ -
+
+
arguments+ Object* + + + + +++ + +an arbitrary set of parameters to pass to +the handler. If the first of these is an object literal and the event is +configured to emit an event facade, the event facade will replace that +parameter after the properties the object literal contains are copied to +the event facade.
+
+
+
Returns:
+ +getEvent
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
prefixed+ +
+
+
Returns the custom event of the provided type has been created, a +falsy value otherwise
+Parameters:
+ + +Returns:
+ +getTargets
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an array of bubble targets for this object.
+Returns:
+ +on
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Subscribe a callback function to a custom event fired by this object or +from an object that bubbles its events to this object.
+ +Callback functions for events published with emitFacade = true will
+receive an EventFacade as the first argument (typically named "e").
+These callbacks can then call e.preventDefault() to disable the
+behavior published to that event's defaultFn. See the EventFacade
+API for all available properties and methods. Subscribers to
+non-emitFacade events will receive the arguments passed to fire()
+after the event name.
To subscribe to multiple events at once, pass an object as the first +argument, where the key:value pairs correspond to the eventName:callback, +or pass an array of event names as the first argument to subscribe to +all listed events with the same callback.
+ +Returning false from a callback is supported as an alternative to
+calling e.preventDefault(); e.stopPropagation();. However, it is
+recommended to use the event methods whenever possible.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +once
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Listen to a custom event hosted by this object one time.
+This is the equivalent to on except the
+listener is immediatelly detached when it is executed.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +onceAfter
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Listen to a custom event hosted by this object one time.
+This is the equivalent to after except the
+listener is immediatelly detached when it is executed.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +parseType
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
[pre=this._yuievt.config.prefix]+ +
+
+
Takes the type parameter passed to 'on' and parses out the +various pieces that could be included in the type. If the +event type is passed without a prefix, it will be expanded +to include the prefix one is supplied or the event target +is configured with a default prefix.
+Parameters:
+ + +Returns:
+ +publish
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
opts+ +
+
+
Creates a new custom event of the specified type. If a custom event +by that name already exists, it will not be re-created. In either +case the custom event is returned.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +the type, or name of the event
+
+
+ -
+
+
opts+ Object + + + + +++ + +optional config params. Valid properties are:
+ +-
+
- + 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) + +
- + 'bubbles': whether or not this event bubbles (true) + Events can only bubble if emitFacade is true. + +
- + 'context': the default execution context for the listeners (this) + +
- + 'defaultFn': the default function to execute when this event fires if preventDefault was not called + +
- + 'emitFacade': whether or not this event emits a facade (false) + +
- + 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' + +
- + 'fireOnce': if an event is configured to fire once, new subscribers after + the fire will be notified immediately. + +
- + 'async': fireOnce event listeners will fire synchronously if the event has already + fired unless async is true. + +
- + 'preventable': whether or not preventDefault() has an effect (true) + +
- + 'preventedFn': a function that is executed when preventDefault is called + +
- + 'queuable': whether or not this event can be queued during bubbling (false) + +
- + 'silent': if silent is true, debug messages are not provided for this event. + +
- + 'stoppedFn': a function that is executed when stopPropagation is called + + +
- + 'monitored': specifies whether or not this event should send notifications about + when the event has been attached, detached, or published. + +
- + 'type': the event type (valid option if not provided as the first parameter to publish) + +
+
+
Returns:
+ +removeTarget
+
+
+ -
+
+
-
+
+
o+ +
+
+
Removes a bubble target
+Parameters:
+ +-
+
+
-
+
+
o+ EventTarget + + + + +++ + +the target to remove
+
+
+
subscribe
+
+
+ ()
+
+
+
+
+
+ deprecated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subscribe to an event
+unsubscribe
+
+
+ ()
+
+
+
+
+
+ deprecated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ detach a listener
+unsubscribeAll
+
+
+ -
+
+
-
+
+
type+ +
+
+
Removes all listeners from the specified event. If the event type +is not specified, all listeners from all hosted custom events will +be removed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The type, or name of the event
+
+
+
