Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

georapbox/eventdispatcher.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eventDispatcher

JavaScript events for custom objects

Build Status npm version

Install

npm

$ npm install gr-event-dispatcher

API

eventDispatcher~addEventListener(type, listener) ⇒ Object

Registers the specified listener on the event target it's called on.

Kind: inner method of eventDispatcher
Returns: Object - The eventDispatcher object.
Throws:

  • TypeError If the object that eventDispatcher is applied to is not extensible.
Param Type Description
type String A string representing the event type to listen for.
listener function A function to be executed when an event of the specified type occurs.

eventDispatcher~hasEventListener(type, listener) ⇒ Boolean

Checks if the target object has a listener registered on for specific event type.

Kind: inner method of eventDispatcher
Returns: Boolean - True if target object has listener registered for specific event type; otherwise false.

Param Type Description
type String A string representing the event type.
listener function The event listener to check if registered for the specified event type.

eventDispatcher~removeEventListener(type, listener) ⇒ Object

Removes the previously registered event listener from the event target.

Kind: inner method of eventDispatcher
Returns: Object - The eventDispatcher object.

Param Type Description
type String A string representing the event type to remove.
listener function The event listener function to remove from the event target.

eventDispatcher~dispatchEvent(event) ⇒ Object

Dispatches an event at the specified event target.

Kind: inner method of eventDispatcher
Returns: Object - The eventDispatcher object.

Param Type Description
event Object The event object to be dispatched.

eventDispatcher~apply(object) ⇒ Object

Applies the eventDispatcher prototype methods to the event target.

Kind: inner method of eventDispatcher
Returns: Object - The eventDispatcher object.
Throws:

  • TypeError If the object that eventDispatcher is applied to is not extensible.
Param Type Description
object Object The event target object.

Example

var car = {
  start: function (afterStartCallback) {
    // Dispatch `start` event.
    this.dispatchEvent({type: 'start', message: 'Start engines'});
    afterStartCallback && afterStartCallback(this);
  },
  stop: function () {
    // Dispatch `stop` event.
    this.dispatchEvent({type: 'stop', message: 'Stop engines'});
  }
};

function startEngines(event) {
  console.log(event.message);
}

function stopEngines(event) {
  console.log(event.message);
}

// Apply `eventDispatcher` methods to the prototype of the event target.
eventDispatcher.apply(Object.getPrototypeOf(car));

// Register event listeners to event target.
car
  .addEventListener('start', startEngines)
  .addEventListener('afterStart', startEngines)
  .addEventListener('stop', stopEngines);

// `start` event fires first, then `afterStart` and finally
// after two seconds `stop` events fires.

car.start(function (self) {
  // Dispatch `afterStart` event.
  self.dispatchEvent({type: 'afterStart', message: 'Car has started'});
});

console.log(car.hasEventListener('start', startEngines));      // -> true
console.log(car.hasEventListener('afterStart', startEngines)); // -> true
console.log(car.hasEventListener('stop', startEngines));       // -> false
console.log(car.hasEventListener('stop', stopEngines));        // -> true

setTimeout(function () {
  car.stop();

  // Remove all event listeners from event target.
  car
    .removeEventListener('start', startEngines)
    .removeEventListener('afterStart', startEngines)
    .removeEventListener('stop', stopEngines);
}, 2000);

License

The MIT License (MIT)

Morty Proxy This is a proxified and sanitized view of the page, visit original site.