基于this question,我创建了一个自定义匿名事件监听器,如下所示:
function init() {
console.log("Initiating widgets");
}
window.addEventListener("widgetInit", init());
我可以使用代码中的$(window).trigger('widgetInit');
来调用它,但是如果我将其粘贴到控制台中,它只会返回窗口对象。
有没有办法通过控制台模拟事件而不修改代码?
答案 0 :(得分:4)
也许您可以尝试使用原生DOM方法:
window.dispatchEvent(new Event('widgetInit'));
答案 1 :(得分:1)
看起来jQuery是用于CustomEvent的自己的事件系统。 如果您使用jQuery来监听事件,它将正常工作。
否则,它们(不太受支持)创建CustomEvent的方式:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
答案 2 :(得分:1)
我认为你的听众应该是:
window.addEventListener("widgetInit", init);
所以init
没有括号......
当你通过直接在控制台中输入来定位jQuery元素时,这个元素总是被返回。 所以触发器有效...但我认为你的听众没有工作......