我在document
上設置了一個事件處理程序,正在監聽submit
和change
事件,並將其委託給頁面上的任何form
元素。這個想法是當輸入被改變時更新服務器(因爲事件冒泡到表單),同時也允許提交整個表單。對於需要特殊處理的輸入,我有一些覆蓋,這很好(因爲它們放置在代碼中更高,我可以用.stopImmediatePropagation()
阻止主事件處理程序 - 所有這些處理程序都在document
上。)防止,然後重新觸發一個javascript事件?
我試圖現在要做的就是攔截對特定輸入change
事件,那麼反而預防,我想重新觸發主處理器,在一些額外的數據傳遞(使用jQuery的.trigger(event, [data])
語法。)
舉一個簡單的例子:http://jsfiddle.net/rrEmq/3/
我的目標是:
個- 維護委派事件(形式的動態加載,JS被加載一次)
- 避免重複代碼
- 避免破壞了主處理器的功能集成到單獨的函數
這第三個項目是我最初的方法,並且我明白它可以完成工作,但我很想找到一種方法來解決這個問題,而不必重寫主要處理程序。顯然,真正的啓發是,因爲一切都委託給相同的元素,並且因爲我使用的是e.target
,所以我不能簡單地觸發DOM樹中更高的處理程序。
你能不能只檢查是否額外的數據已經通過並採取相應的行動? –