2014-09-29 21 views
0

鉴于此代码小一点触发,不会触发? jQuery是否在标准事件处理程序错过的背后做了些什么?事件时的jQuery

http://jsfiddle.net/Dygerati/zx36aapj/1/

+0

你可能想阅读http://learn.jquery.com/events/triggering-event-handlers/,*什么处理程序可以.trigger()'d?*。 – 2014-09-29 23:50:40

回答

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/

+0

感谢您的回应;在我的特定场景中,我可以访问监听器的代码,但不能访问触发器(这是通过jQuery所完成的)。我还没有深入研究代码,但不会在后台创建自定义事件吗? 我真正需要做的是捕获jQuery抛出的事件,而不是改变它被触发的方式。 – Dygerati 2014-10-01 20:01:10

+0

aha - 明白了:试试这个小提琴:http://jsfiddle.net/zx36aapj/3/ – 2014-10-02 00:22:57