2011-11-08 49 views
1

我正在那裏許多不同的公司都在同一地點工作的項目。你能用普通的JavaScript綁定到jQuery事件嗎?

主要開發商已經建立了一個事件 - 我們稱之爲init - 這說明該頁面已準備好爲我們的代碼來執行。

,他們基本上調用它是這樣的:

$(window).trigger('init'); 

由於一些原因,我不會進入這裏,我們希望避免在我們自己的代碼使用jQuery儘可能。我試圖像這樣綁定到它:

window.addEventListener('init', function (event) { 
    alert('hehehehe'); 
}); 

但這似乎並不奏效。這工作完美,雖然:

$(window).bind('init', function (event) { 
    alert('hehehehe'); 
}); 

是否jQuery使用特殊事件對象默認情況下,你不能綁定到純JS?我只是在做一些愚蠢的事情嗎?

回答

3

docs for bind似乎包含了答案:

任何字符串是合法的事件類型;如果字符串不是本機DOM事件的名稱,則處理程序綁定到自定義事件。這些事件從未被瀏覽器調用,但也可以使用.trigger()或.triggerHandler()從其他JavaScript代碼手動觸發。

有一個稱爲'init'沒有原生DOM事件:

http://en.wikipedia.org/wiki/DOM_events

因此,「這些事件都不會被瀏覽器調用,但也可以使用.trigger()或.triggerHandler從其他JavaScript代碼手動觸發()」

+0

啊,所以我不能輕易地綁定到一個自定義JavaScript事件,我猜? – Cera

+2

@Cerales:正確。你必須實現你自己的pubsub系統,然後說服所有其他開發者使用它。說服他們比使用已經爲他們構建的人更好,即jQuery。祝你好運... – Domenic

+0

@Domenic - 或者讓他們停止使用他們的自定義事件系統,並使用標準的DOM事件系統,不需要第三方庫,並通過瀏覽器的原生支持。 – RobG