當前的dom事件模型將事件從葉節點(事件的來源)傳播到頂層根(文檔)。是否可以觸發DOM事件並使其在DOM樹中停止?
我的問題是這樣的:有沒有辦法觸發一個事件倒退?從身體上,讓它落到葉子上?
我想在我的表單中禁用所有表單輸入。他們都是jQuery UI部件。我不保留主要表單組件中的元素的引用,並且在提交時我想禁用所有這些元素。我所有的小部件綁定到一個自定義dom事件,稱爲「field:disable」。
當前的dom事件模型將事件從葉節點(事件的來源)傳播到頂層根(文檔)。是否可以觸發DOM事件並使其在DOM樹中停止?
我的問題是這樣的:有沒有辦法觸發一個事件倒退?從身體上,讓它落到葉子上?
我想在我的表單中禁用所有表單輸入。他們都是jQuery UI部件。我不保留主要表單組件中的元素的引用,並且在提交時我想禁用所有這些元素。我所有的小部件綁定到一個自定義dom事件,稱爲「field:disable」。
jQuery的does not support event capturing,所以我覺得你被卡住事件冒泡。
你爲什麼不這樣做
$('#form input').trigger('field:disable')
,如果你不想傳播
$('#form input').triggerHandler('field:disable')
我在想,與jQuery選擇器相比,捕獲觸發器的成本更低。哦,謝謝澄清。 – 2013-03-22 10:10:08
事件只能從葉子向根發泡,而不是相反。
您應該確定一個共同的類,所有的部件都然後手動觸發事件:
$('.ui-widget').trigger('field:disable');
你爲什麼要改爲捕捉鼓泡的事件的事件,[jQuery的不支持拍攝](http://stackoverflow.com/questions/6354079/event-capturing-with-jquery) – 2013-03-21 13:38:35
爲什麼不能'$(「input」)。disable()'? – 2013-03-21 13:39:39
你爲什麼不做'$('#form input')。triggerHandler('field:disable')' – 2013-03-21 13:40:00