Helper functions for browser event listener
Use one of the following examples to import script.
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>
<script type="module">
import { on, off } from "https://cdn.jsdelivr.net/npm/ivent@0.1/+esm";
</script>
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>
<script src="https://cdn.jsdelivr.net/npm/ivent@0.1/dist/ivent.min.js"></script>
Install ivent as a Node.js module using npm
npm install ivent
Import ivent by adding this line to your app's entry point (usually index.js
or app.js
):
import { on, off } from 'ivent';
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);
});
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 event:
import { trigger } from 'ivent';
trigger(document, 'click');
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);
});
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);
});
- Run
npm install
in the command line. Or if you need to update some dependencies, runnpm update
npm run build
to run build
npm run js-lint
to show eslint errorsnpm run js-lint-fix
to automatically fix some of the eslint errors