emap
Version:
manages event listeners
59 lines (42 loc) • 1.61 kB
Markdown
Manages event listeners.
Creates and manages closures for your event handling and makes it easy to remove them.
Use the EventMap, if you repeatedly have to remove listeners owned by an instance or
if you want to remove all registered listeners at once.
Works with:
- addEventListener/removeEventListener (browser)
- on/addListener/off/removeListener (node)
- angulars $on (with unregister handle)
- add/remove (my own)
```coffee-script
EventMap = require 'emap'
eventMap = new EventMap()
```
```coffee-script
EventEmiter = require 'events'
emiter = new EventEmiter()
anchor = document.createElement 'a'
myHandler = (args...) ->
console.log "myHandler called with: ", args
myObject =
handler: (type, args...) ->
console.log "#{this}.handler called with: ", args
eventMap.map emiter, 'ready', myHandler
eventMap.map emiter, 'ready', myObject.handler, myObject
eventMap.map anchor, 'click', myHandler
eventMap.map anchor, 'click', myObject.handler, myObject, true
eventMap.unmap emiter, 'ready', myHandler
eventMap.unmap emiter, 'ready', myObject.handler, myObject
eventMap.unmap anchor, 'click', myHandler
eventMap.unmap anchor, 'click', myObject.handler, myObject, true
eventMap.all()
```