我可以将jQuery .trigger()与addEventListener()添加的事件侦听器一起使用吗?

用户3931014

在我的(javascript,jQuery)代码中,我使用两种触发事件的方式

jQuery('body').trigger('crazy-trigger-event');
jQuery("body").get(0).dispatchEvent(new CustomEvent("crazy-dispatch-event"));

在这段代码中:

http://jsfiddle.net/jts9jhbt/3/

我已经使用jQuery .on()和DOM .addEventListener()方法注册了自定义事件。

然后,我使用jQuery .trigger()和DOM .dispatchEvent()方法触发事件。

似乎使用.on()注册的侦听器会收到两种触发的事件。

但是注册到.addEventListener()的侦听器仅接收使用.dispatchEvent()触发的事件。

我的用例是,我混合使用了旧代码和jQuery代码,并且似乎最安全的方法是使用.dispatchEvent()使其兼容。

因此,我可以对代码进行一些更改,以便向.addEventListener()注册的侦听器可以从.trigger()接收事件吗?

达格姆什利

简单答案

,你不能。

说明

主要原因是jQuery需要跨多个浏览器工作,并且...

“ [...] jQuery的事件系统DOM事件系统之上一层。”

Eventhough也有例外,有jQuery的知道哪些事件是由目前的浏览器由于不支持任何有效的方法,缺乏一个的getEventListeners方法。开发人员认为创建解决方案

“ [...]破坏现有代码不会导致性能问题是不可能的。”

如果这听起来像是对任何人的挑战,您都可以通过发布解决方案来证明他们是错误的。


详细的解释可以在Dave MethvinjQuery#2476的回答中找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将事件侦听器与其他类Android的上下文一起使用

我可以将动作侦听器添加到JLabel吗?

我可以将FlatfileItemReader与Taskexecutor一起使用吗?

使用jQuery将事件侦听器添加到动态添加的元素中

我可以将socket.io事件侦听器分成不同的模块吗?

返回不同类型的对象时,将访问者或侦听器与ANTLR4一起使用

我可以将SqlDependency与多个侦听器/负载平衡一起使用吗

我可以在不是我的网站上添加事件侦听器吗?

jQuery off方法是否删除通过addEventListener添加的事件侦听器?

我可以将SSH vi代码编辑器与phpseclib一起使用吗?

将useEffect与事件侦听器一起使用

将Kotlin协程与Spring Kafka侦听器一起使用

如何使用jquery .each()添加单个事件侦听器?

我可以将concat与toString一起使用吗?

将OnItemLongClick侦听器与ListView一起使用

我可以将Twisted GTK Reactor与UDP接收器一起使用吗?

JNativeHook键盘侦听器无法与我的Swing / GUI一起使用

我可以将accept()与IOCP一起使用吗?

我可以将Materializecss与dart一起使用吗?

我可以将HaxeUI与HaxeFlixel一起使用吗?

我们可以将服务器发送事件(HTML5)与WCF一起使用吗

我可以将Underscore的“ where”与“ or”一起使用吗?

我可以在Hazelcast中的单个<key,value>对中添加一个侦听器吗?

我可以将 Bootstrap 与 RCloud 一起使用吗?

将 Laravel 事件/侦听器与 Nova 按钮一起使用

我可以将 AutoMapper 与 Blazor 一起使用吗?

我可以将 Envoy 与 Linkerd 一起使用吗?

我可以将 mlDatabasesWithForestsOnOneHost 与副本一起使用吗?

我可以将 `eval` 与 `rolling()` 一起使用吗?