Package Exports
- emmy
- emmy/delegate
- emmy/emit
- emmy/keypass
- emmy/not
- emmy/off
- emmy/on
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (emmy) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Emmy 
Events micro toolkit.
- Multiple events
on(el, 'click touchstart', cb) - Prefixes
on(el, 'click.x', cb), off(el, '.x') - Harnesses native event mechanism, if available.
Usage
import {on, off, emit} from 'emmy'
on(el, 'evt', e => {})
emit(el, 'evt', {x: 1})
off(el, 'evt')API
on(target, event, callback, opts?), on(target, events, opts?)
Bind event handler to target or bind dict of events.
targetcan be any non-primitive object. In case of objects with own events mechanism, such as HTMLElement or Stream, the own events mechanism is used.eventcan be an string or an array of events, optionally with suffixes asclick.tag1.tag2eventscan be a dict of events with callbacks.optscan provideopts.throttleandopts.delegateparams. A number forthrottleor a string fordelegatecan be passed directly.
// dragging scheme
on(el, 'mousedown touchstart', () => {
// ...init drag
on(el, 'mousemove.drag touchmove.drag', () => {
// ...handle drag
}, {throttle: raf})
on(el, 'mouseup.drag touchend.drag', () => {
off(el, '.drag')
// ...end drag
})
})
// bind events dict
on(target, {
click: handler,
mousedown: specialHandler
})off(target, event?, callback?)
Remove event handler from a target. If callback isn't passed - all registered listeners are removed. If event isn't passed - all registered callbacks for all known events are removed (useful on destroying the target).
// remove handler the standard way
off(target, 'click', handler)
// remove handler for all registered events
off(target, handler)
// remove all events with provided suffix[es]
off(target, '.special')emit(target, event, data?, options?)
Emit an event on a target. event can be a string or an Event instance. If target is an element then data is placed to e.details. options can define triggering params, eg. {bubbles: true}.
let emitter = Emmy(target?)
Emmy can also be used as events provider for a target.
import Events from 'emmy'
// turn target into an event emitter
Events(target)
target.on('.x', e => {})
target.emit('change.x')
target.off('.x')
// create event emitter instance
let emitter = new Emitter()
emitter.on('.x', e => {})
emitter.emit('a.x b.x')
emitter.off('a b')License
MIT © Dmitry Ivanov.
