【发布时间】:2021-07-10 07:17:04
【问题描述】:
在许多库中,例如leaflet,它们有自己的事件,例如“调整大小”或“缩放”事件,您可以在here 看到它们,它们也有自己的事件对象,具有自定义属性,而这些事件对象不具备 DOM 事件的属性,如气泡、cancelBubble 等。它们使用 on() 方法来监听这些事件。
我想知道,他们是如何做到这一点的,他们是如何创建自己的事件、事件对象和自己的事件监听器的,我听说过一种叫做“事件发射器”的东西,但它是 nodejs 的一部分,它只能工作在浏览器之外,所以我想知道它们是如何让它们在浏览器中工作的。
我猜他们创建了自己的事件发射器并在他们的库中使用它们,因为在互联网上有许多手工构建的事件发射器可以在浏览器中工作(我不确定这是不是真的),所以我猜仍然可以在浏览器中使用类似于“事件发射器”的东西。
那么真相是什么?他们是如何像在浏览器中使用 Event Emitter 一样制作这些事件和事件侦听器的。非常感谢您阅读这个问题,我不确定这是不是一个好问题,但希望我能从你们那里得到答案,非常感谢!
【问题讨论】:
-
有很多库像
event一样这样做 -
快速搜索 "javascript custom event" 会以一堆合适的资源结束,例如 Creating and triggering events - Event reference | MDN 或 Create JavaScript custom event -> How much research effort is expected of Stack Overflow users?
标签: javascript leaflet eventemitter