2011-04-30 42 views
2

前段時間我正在玩JavaScript,並且激怒了我,我無法創建自己的事件。是否有內置的方式來自然地在JavaScript中創建自定義事件?

我見過使用這種內建的框架(jQuery,MooTools,Prototype。Dojo並不奇怪,因爲它看起來像做一切和你的洗衣),而且我實際上構建了自己的系統來創建和激發自定義事件。

它只是覺得應該有一個本地的方式來做到這一點。有誰知道如何做到這一點/如果你甚至可以?

+1

大多數圖書館不會將自定義事件綁定到真實事件系統。他們改爲使用簡單的發佈/訂閱系統,如[Backbone.Events](http://documentcloud.github.com/backbone/docs/backbone.html#section-9)。這可能值得一看。 – Raynos 2011-04-30 14:03:14

+0

這就是我做我的。我還沒有研究過其他人如何做。 – Kayla 2011-04-30 19:14:37

+0

**更新:**現在完成:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events – Costa 2014-06-22 07:42:11

回答

7
var dragEvent = document.createEvent("Event"); 
dragEvent.initEvent("dragged", true, true); 
el.dispatchEvent(dragEvent); 

有關官方規格,請參閱DOM Level 2 Events。在MDC處也參見createEvent()initEvent()/initMouseEvent()/initUIEvent()dispatchEvent()

我使用這種技術來創建自定義拖動和調整大小事件在this sample page通信。

+0

所以我認爲這隻適用於Elements?或者你可以將它添加到像XHR對象? – Kayla 2011-04-30 03:35:10

+0

@tylermwashburn正確,這僅適用於DOM元素。 – Phrogz 2011-04-30 12:59:13

+1

**更新:**現在就這樣完成:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events – Costa 2014-06-22 07:41:44

相關問題