Package Exports
- emmy
- emmy/emit
- 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 toolkit.
- Multiple events
on(el, 'click touchstart', cb) - Event classes
on(el, 'click.x', cb), off(el, '.x') - Uses native events, if available.
- Delegate
on('.subel', 'click', cb, { target: container })
Usage
import {on, off, emit} from 'emmy'
on(el, 'evt.foo', e => {})
emit(el, 'evt', {x: 1})
off(el, '.foo')API
off = on(target, event, handler, opts?)
Bind event handler to target events.
eventcan be a string or an array, optionally with class suffixesclick.tag1.tag2targetcan be an element, list, or a string to delegate events.optscan provideopts.targetfor delegate target and listener props.
// dragging scheme
on(el, 'mousedown touchstart', () => {
// ...init drag
on(el, 'mousemove.drag touchmove.drag', () => {
// ...handle drag
})
on(el, 'mouseup.drag touchend.drag', () => {
off(el, '.drag')
// ...end drag
})
})
// delegate
let off = on('.selector', 'click', handler, { element: container })
// remove listener
off()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}.
License
MIT © Dmitry Ivanov.
