我一直在閱讀有關自定義事件,並看了一些例子。也許我誤解了什麼是自定義事件,以及它們是如何觸發的,並希望得到一些幫助。究竟是什麼作爲一個觸發器的自定義事件的Javascript
例題
觸發事件時的從一種顏色到另一個div變化的背景色。
情況A)顏色因腳本內可檢測的用戶活動而改變,例如通過onclick,onmouseover,onkeypress,然後我將爲這些事件設置一個監聽器並作出相應的響應。這我明白該怎麼做。
情況B)由於用戶活動的結果而導致的顏色變化無法從腳本中檢測到,例如應用於頁面的新主題,那麼我是否認爲以下內容是正確的?
- 我需要爲顏色更改創建自定義事件。
- 爲事件添加監聽到合適的DIV
- 監聽器需要輪詢DIV,週期性地檢查變爲彩色
真正的第3步,我不清楚。如果您未輪詢DIV,事件顏色變化如何觸發事件?換句話說,劇本如何知道顏色發生了變化?
什麼是「正在應用的新主題」?這仍然是用戶編寫的自定義代碼,並且該代碼可能會觸發所需的事件。 –
使用瀏覽器選項,用戶可以更改字體大小,背景顏色等,即應用一個新的主題。據我所知在javascript中沒有本地事件來處理這些,所以我需要在我的腳本中創建一個自定義事件。我想問的是如何找出何時發生定製事件?在我的示例中,顏色變化是如何作爲觸發器的,或者您是否必須繼續檢查(例如使用setTimeout)是否發生顏色變化? – jing3142
*您自己的代碼*必須激發自定義事件。 *您編寫的程序*必須決定何時調用['.dispatchEvent'](https://developer.mozilla.org/en-US/docs/DOM/Creating_and_triggering_events)(或['.trigger'] (http://api.jquery.com/trigger/),在jQuery中)。自定義事件只是事件偵聽器的消息。你決定何時發送;他們不會自己發生。有時,檢測什麼時候觸發事件(即向事件偵聽器發送消息)的唯一方法是使用輪詢。 – apsillers