66 lines
1.3 KiB
Markdown
66 lines
1.3 KiB
Markdown
# crossvent
|
|
|
|
> Cross-platform browser event handling
|
|
|
|
The event handler API used by [dominus][1].
|
|
|
|
# Install
|
|
|
|
Using Bower
|
|
|
|
```shell
|
|
bower install -S crossvent
|
|
```
|
|
|
|
Using `npm`
|
|
|
|
```shell
|
|
npm install -S crossvent
|
|
```
|
|
|
|
# API
|
|
|
|
The API exposes a few methods that let you deal with event handling in a consistent manner across browsers.
|
|
|
|
### `crossvent.add(el, type, fn, capturing?)`
|
|
|
|
Adds an event listener `fn` of type `type` to DOM element `el`.
|
|
|
|
```js
|
|
crossvent.add(document.body, 'click', function (e) {
|
|
console.log('clicked document body');
|
|
});
|
|
```
|
|
|
|
### `crossvent.remove(el, type, fn, capturing?)`
|
|
|
|
Removes an event listener `fn` of type `type` from DOM element `el`.
|
|
|
|
```js
|
|
crossvent.add(document.body, 'click', clicked);
|
|
crossvent.remove(document.body, 'click', clicked);
|
|
|
|
function clicked (e) {
|
|
console.log('clicked document body');
|
|
}
|
|
```
|
|
|
|
### `crossvent.fabricate(el, type, model?)`
|
|
|
|
Creates a synthetic custom event of type `type` and dispatches it on `el`. You can provide a custom `model` which will be accessible as `e.detail`.
|
|
|
|
```js
|
|
crossvent.add(document.body, 'sugar', sugary);
|
|
crossvent.fabricate(document.body, 'sugar', { onTop: true });
|
|
|
|
function sugary (e) {
|
|
console.log('synthetic sugar' + e.detail.onTop ? ' on top' : '');
|
|
}
|
|
```
|
|
|
|
# License
|
|
|
|
MIT
|
|
|
|
[1]: https://github.com/bevacqua/dominus
|