2014-09-29 51 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