jQuery : 사용자 정의 이벤트와 함께 event.preventDefault ()를 어떻게 사용합니까?

StackOverflow https://stackoverflow.com/questions/2229647

  •  19-09-2019
  •  | 
  •  

문제

트리거 코드에서 어떻게 알 수 있습니까? preventDefault 호출 되었습니까?

$(document).trigger('customEvent', params);
if (/* ??? */)
    doDefaultActions();
도움이 되었습니까?

해결책

Trigger ()도 이벤트 객체를 가져갈 수 있으므로 다음과 같은 이벤트 객체를 만들 수 있습니다.

var event = jQuery.Event("customEvent");
$(document).trigger(event);

그런 다음 방아쇠 후에 예방 표시 ()가 그렇게 호출되었는지 확인할 수 있습니다.

var prevented = event.isDefaultPrevented();

다른 팁

기본값이 방지되었는지 여부를 찾는 방법을 묻는 경우 사용하십시오.

event.isDefaultPrevented()

이것은 예방 default ()가 호출되었는지 여부에 따라 'true'또는 'false'를 반환합니다.

편집하다:http://api.jquery.com/event.isdefaultprevented/

사용자 정의 이벤트에는 발생하는 기본 조치가 없습니다. (맞춤).

반면 에이 사건의 버블 링 효과를 다른 사람들에게 중지하려면 triggerHandler 계층 구조까지 거품이되지 않습니다 ..

내가 아는 한 "extenceDefault ()"호출은 앵커 태그의 클릭 또는 텍스트 필드의 키 프레스와 같은 것들에 대한 기본 브라우저 응답을 방지하는 것입니다. 이벤트 처리주기가 끝나면 끝났습니다. 메이크업 이벤트의 경우 기본 브라우저 기능에 관한 것이 아니라 jQuery 이벤트 처리 시스템에 관한 것이기 때문에 전혀 영향을 미치지 않는다고 생각합니다.

코드는 "외부 세계"와 의사 소통하기 위해 어딘가에 일종의 깃발을 설정할 수 있습니다.

편집] ooh 핸들러가 외부 코드가 찾을 수있는 이벤트 객체에 대한 참조를 보관하고 "isdefaultprevented ()"로 외부에서 확인할 수 있습니다. 그러나 그것이 작동하는지 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top