我可以使用jQuery .trigger()与事件监听器添加addEventListener()
Can I use jQuery .trigger() with event listeners added with addEventListener()?
在我的(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事件系统之上的一层。"
尽管有例外,由于缺少的getEventListeners
方法,jQuery没有有效的方法来知道当前浏览器支持哪些事件。开发人员认为解决方案的创建
"[…如果不破坏现有代码或导致性能问题.", 是不可能的。
如果对任何人来说这听起来像是一个挑战,你可以自由地通过发布你的解决方案来证明他们是错的。
详细的解释可以在Dave Methvin对jQuery的问题#2476的回答中找到。
标题>我需要点击移动设备上滚动导航条的事件,这对我来说很有效:
let targetElement = document.querySelector(".className");
let clickEvent = new Event('click');
targetElement.dispatchEvent(clickEvent);
相关文章:
- 在下拉式javascript事件监听器中选择时触发事件
- 如何在音频元素上使用React媒体合成事件监听器
- Javascript事件监听器让我很困惑
- javascript的事件监听器将下拉列表转换为输入按钮
- 组合类和事件监听器:`this`关键字
- 将事件监听器添加到画布时出错
- 如何通过javascript触发事件监听器
- 通过事件监听器在circle的文本匹配id上修改circle元素
- 动态添加javascript事件监听器,做一些无法解释的事情
- 事件处理程序&事件监听器彼此独立
- 为什么我在谷歌闭包中编写的事件监听器不起作用
- 如何在JS中使用事件监听器
- 为什么jQuery选择事件监听器会多次触发
- 为什么不'我的手机上没有设备就绪的事件监听器
- 何时在 Cocos2d-js 3.2 中注销事件监听器和定时回调
- javaScript-我们如何将一个事件监听器设置为另一个事件监听器的从属
- 微信/微信JavaScript桥(WeixinJSBridge)使用微信JSBridgeReady事件监听器并函数作为参
- ExtJS拖拽事件监听器在Chrome和Firefox上的工作方式不同
- 在这段代码中,复制自雄辩javascript的ch15,keyup事件监听器做什么
- 向音频元素添加事件监听器;不起作用