鉴于这一小段代码:
window.addEventListener("test_event", function(e){
console.log("event fired");
}, false);
console.log("init");
$(window).trigger("test_event");
为什么不触发事件? jQuery是否在标准事件处理程序错过的幕后做某事?
答案 0 :(得分:1)
您要做的是发送自定义事件:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
window.dispatchEvent(new Event("test_event"));
http://jsfiddle.net/zx36aapj/2/
或者 - 如果您无法修改触发事件的方式,则可以使用bind
代替:
$(window).bind("test_event", function(e){
console.log("event fired");
});
console.log("init");
$(window).trigger("test_event");
这里有一个链接:http://jsfiddle.net/zx36aapj/3/