2013-03-21 3 views
1

현재 dom 이벤트 모델은 리프 노드 (이벤트 소스)에서 최상위 루트 (문서)로 이벤트를 전파합니다.DOM 이벤트를 트리거하여 DOM 트리에서 사용할 수 있습니까?

내 질문은 : 이벤트를 거꾸로 트리거하는 방법이 있습니까? 몸에서 돔을 내려가 잎사귀에 떨어지게 만드시겠습니까?

양식의 양식 입력을 모두 비활성화하고 싶습니다. 그들은 모두 jquery UI 위젯입니다. 필자는 기본 폼 구성 요소의 요소에 대한 참조를 유지하지 않고 제출할 때 모든 요소를 ​​비활성화하려고합니다. 모든 위젯은 "field : disable"이라는 사용자 정의 DOM 이벤트에 바인딩됩니다.

+1

왜 당신이 그것을 버블 링 대신에 이벤트를 캡처 할 않는 이벤트를 전파하지 않으려면

가 왜

$('#form input').trigger('field:disable') 

을하지 않는다, [JQuery와 캡처를 지원하지 않습니다 ] (http://stackoverflow.com/questions/6354079/event-capturing-with-jquery) –

+0

왜'$ ("input"). disable()'하지 않습니까? –

+0

왜'$ ('form input')을하지 않습니까? triggerHandler ('field : disable')' –

답변

0

jQuery를 does not support event capturing을, 그래서 당신은 이벤트 버블 링에 붙어 생각합니다. 당신이

$('#form input').triggerHandler('field:disable') 
+0

캡쳐 트리거가 jQuery 선택기에 비해 비용이 적게 듭니다. 오 잘 설명해 주셔서 고마워요. –

0

이벤트는 잎에서 뿌리까지만 거품을 낼 수 있습니다.

당신은 모든 위젯이 공통의 클래스를 확인하고 수동으로 이벤트를 트리거해야합니다

$('.ui-widget').trigger('field:disable'); 
관련 문제