ivent v0.2.0
ivent
Helper functions for browser event listener
Table of Contents
Import ivent
Use one of the following examples to import script.
ESM
We provide a version of ivent built as ESM (ivent.esm.js and ivent.esm.min.js) which allows you to use ivent as a module in your browser, if your targeted browsers support it.
<script type="module">
import { on, off } from "ivent.esm.min.js";
</script>ESM CDN
<script type="module">
import { on, off } from "https://cdn.jsdelivr.net/npm/ivent@0.1/+esm";
</script>UMD
ivent may be also used in a traditional way by including script in HTML and using library by accessing window.ivent.
<script src="ivent.min.js"></script>UMD CDN
<script src="https://cdn.jsdelivr.net/npm/ivent@0.1/dist/ivent.min.js"></script>CJS (Bundlers like Webpack)
Install ivent as a Node.js module using npm
npm install iventImport ivent by adding this line to your app's entry point (usually index.js or app.js):
import { on, off } from 'ivent';Methods
on
one
DOM event listener:
import { on } from 'ivent';
on(document, 'click', (e) => {
console.log('clicked', e);
});Event listener with delegated target:
import { on } from 'ivent';
on(document, 'click', '.custom-element-selector', (e) => {
console.log('clicked', e);
});Custom event listener with namespace:
import { on } from 'ivent';
on(document, 'the-custom-event.with-namespace', (e) => {
console.log('clicked', e);
});off
Remove DOM event listener:
import { on } from 'ivent';
on(document, 'click', (e) => {
console.log('clicked', e);
});
off(document, 'click');Remove DOM event listener by namespace:
import { on } from 'ivent';
on(document, 'click.my-namespace', (e) => {
console.log('clicked', e);
});
off(document, '.my-namespace');trigger
Trigger event:
import { trigger } from 'ivent';
trigger(document, 'click');Custom Events
ready
Create ready event which work in the same way as DOMContentLoaded with additional check for dom loaded. For example, if dom is already loaded, the ready event callback will be fired immediately.
Example:
import { on } from 'ivent';
on(document, 'ready', (e) => {
console.log('dom ready', e);
});mouseenter
mouseleave
pointerenter
pointerleave
Create mouseenter / mouseleave events using mouseover / mouseout so that event delegation works properly. Do the same for pointerenter / pointerleave and pointerover / pointerout.
Example:
import { on } from 'ivent';
on(document, 'mouseenter', 'button', (e) => {
console.log('button mouseenter event created using mouseover', e);
});For Developers
Installation
- Run
npm installin the command line. Or if you need to update some dependencies, runnpm update
Building
npm run buildto run build
Linting
npm run js-lintto show eslint errorsnpm run js-lint-fixto automatically fix some of the eslint errors