简介
whtevr-event
是一个基于原生 JavaScript 的事件库,具有布尔型和链式调用的优点,支持多种事件的绑定和解绑,并且在使用 EventTarget
时可以统一数据格式,方便事件传递和绑定处理。通过 npm 安装使用。
安装
在终端运行以下命令即可安装 whtevr-event:
npm install whtevr-event
使用
初始化事件对象
首先需要初始化事件对象,可以选择绑定在 window
、document
或自定义 DOM
上:
const event = new EventTarget();
绑定事件
支持多类型事件的绑定,如 click
、mousemove
等,也可以自定义事件类型:
event.addEventListener('click', e => { console.log('click event triggered!'); });
通过传递第三个参数可以配置事件的优先级,数字越大优先级越高,支持正负数。默认优先级为 0。
event.addEventListener('click', e => { console.log('click event triggered! (1st priority)'); }, 1); event.addEventListener('click', e => { console.log('click event triggered! (2nd priority)'); }, 2);
如果需要一次性绑定多个事件,也可以使用 addEventsListener
方法:
event.addEventsListener({ click: e => console.log('click event triggered!'), mousemove: e => console.log('mousemove event triggered!'), });
解绑事件
通过 removeEventListener
方法可以解绑指定的事件:
const handler = e => console.log('click event triggered!'); event.addEventListener('click', handler); event.removeEventListener('click', handler);
如果需要解绑多个事件,也可以使用 removeEventsListener
方法:
event.addEventsListener({ click: e => console.log('click event triggered!'), mousemove: e => console.log('mousemove event triggered!'), }); event.removeEventsListener(['click', 'mousemove']);
如果需要解绑所有事件,可以使用 clearEventsListener
方法:
event.clearEventsListener();
触发事件
通过 dispatchEvent
方法可以手动触发事件:
event.dispatchEvent(new CustomEvent('customEvent'));
数据格式处理
通过 normalizeEvent
方法对事件对象进行统一处理,可以统一不同浏览器之间的 event
对象,方便转发和处理:
const handler = event => { const e = event.normalizeEvent(); console.log(e.pageX, e.pageY); }; event.addEventListener('mousemove', handler);
总结
通过 whtevr-event
可以方便地进行事件绑定和解绑,并且在统一数据格式时也提供了很大的便利。同时支持多种类型事件的链式调用,可以提高代码可读性和可维护性。在开发前端项目时,可以考虑使用 whtevr-event
来进行事件处理。
示例代码:https://github.com/someone/whtevr-event-example
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671098dd3466f61ffdfe4