使用jQuery创建/触发事件
我目前使用以下代码从我的Firefox加载项触发事件使用jQuery创建/触发事件,jquery,events,firefox-addon,Jquery,Events,Firefox Addon,我目前使用以下代码从我的Firefox加载项触发事件 var hiddenArea = document.getElementById("section_help"); if (hiddenArea) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false,
var hiddenArea = document.getElementById("section_help");
if (hiddenArea) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
hiddenArea.dispatchEvent(evt);
}
我尝试使用jQuery实现同样的功能
$("#section_help").trigger("click");
但它不起作用。
jQuery不会触发原始代码嵌入的事件
我的错在哪里?提到了以下几点:
尽管.trigger()模拟了事件激活,但它以
合成的事件对象,它不能完全复制
自然发生的事件
现在还不清楚它们的意思,所以我不得不看一下源代码。显然,jQuery并没有真正创建本机事件对象。它只会触发自己的事件处理程序(通过jQuery添加的事件处理程序)以及它在onfoo
properties中可以找到的任何事件处理程序。不会触发通过addEventListener()
添加的事件处理程序。不会触发与事件关联的本机操作(不过jQuery似乎在处理一些特殊情况)
总而言之:最好还是坚持你的老方法来创造事件。它可能更冗长,但它做了你所期望的