Events Dispatcher
Easy handling of the custom logical events
Event dispatcher is a lightweight javascript module for custom events handling in frontend javascript applications.
Installation
In the project directory:
npm install events-dispatcher
Usage:
HTML:
Fill free to change module path for your own project structure
<script src="/node_modules/events-dispatcher/events-dispatcher.js"></script>
JavaScript:
var dispatcher = new EventsDispatcher();
Interface
Events dispatcher uses jQuery like events handling notation BUT enables you to pass a custom context to callbacks as this
Notice: when context
is not defined, dispatcher passes window
or global
as context to callbacks
dispatcher.on( eventName, callback [, context] )
eventName
- Space separated string with events' names 'eventA eventB eventC'
to be listened
callback
- Callback to be fired when event triggered
context
- Not required argument to be a context of the fired event callback
dispatcher.once( eventName, callback [, context] )
Same as dispatcher.on()
method but attached callbacks will be fired only once and then destroyed
dispatcher.deBouncedOn(delay, eventName, callback [, context]);
deBouncedOn
method allows attach to event debounced callbacks. Such callback will be fired only if within delay
in milliseconds listened event
was not fired. If event was fired during the delay, timer refreshed and callback waiting when same delay will finish
delay
- Delay in milliseconds to wait for event firings
eventName
- Space separated string with events' names 'eventA eventB eventC'
to be listened
callback
- Callback to be fired after delay
time from the moment event triggered
context
- Not required argument to be a context of the fired event callback
dispatcher.off(eventName [, callback]);
eventName
- Space separated string with events' names 'eventA eventB eventC'
, which callbacks will be removed
callback
- callback function to detach from event callbacks, if not passed, all callbacks of the event will be removed
dispatcher.trigger(eventName [, dataArg1, ... , dataArgN]);
trigger()
method fires all attached to event callbacks and debounced callbacks
eventName
- Space separated string with events' names 'eventA eventB eventC'
to be listened
dataArg1-dataArgN
- Comma-separated data objects(arrays) to pass as parameters to event callbacks