发布网友 发布时间:2022-04-22 09:53
共1个回答
热心网友 时间:2023-09-27 05:33
之所以突然想写这个文章,主要是之前看到一篇有意思的博文, 《探究点击事件在JavaScript事件循环中的表现》 ,有趣的地方在于JS点击事件加入回调的并不是点击事件的回调方法,而是点击事件本身 (点击位置等描述点击的) 。
当我们连续点击 button.a 两次的时候,结果却是
明明是点击的 button.a ,为什么会触发 button.b 的事件?
无论通过 onclick 还是 addEventListener 实现事件绑定,我怀疑绑定机制是一样的,因为在实际测试中,我发现 onclick 执行顺序和 addEventListener 是一样的,也就是什么时候绑定,那么就在第几个执行。
addEventListener 和 onclick 不同,不是直接给 dom 绑定属性,并且我在 dom 节点上也没有看到任何相应的对象用于保存事件,可见 addEventListener 是不同的机制,参考 EventEmitter ,试着去实现一个 addEventListener
通过上面分析,总结一下