2010-12-28 2 views
2

.onEvent()과 같이 입력 장치를 사용하여 또는 스크립트를 통해 이벤트가 트리거되었는지 감지하는 방법이 있습니까?.onEvent()에서와 같이 입력 장치를 사용하여 또는 스크립트를 통해 이벤트가 트리거되었는지 감지하는 방법이 있습니까?

그것은 이벤트 객체처럼 보인다
if(event.originalEvent) { 
    ... 
} 

는 속성이 originalEvent 경우라고 할 것이다 : 당신이 이벤트 핸들러에 전달되는 이벤트 객체를 검사 할 수 있습니다처럼

+0

originalEvent 속성이 도움이 되었습니까? – typeof

답변

4

짧은 이야기, 아니요.

확인할 수있는 유일한 것은 콜백 처리기 ("이벤트 처리기")에 전달되는 event object입니다. 그의 답변에서 제안한 typeof처럼 이벤트가 장치에 의해 트리거 된 경우 (또는 그 반대로) 설정되지 않은 propertys가있을 수 있지만 다시 100 % 신뢰할 수 없습니다. 예 :

$('someinputcontrol').trigger({ 
    type:   'keydown', 
    originalEvent: true 
}); 

이 기술을 사용하여 이벤트 객체에 속성을 추가 할 수 있습니다. 다시 한번 말하지만, 장치 또는 스크립트로 인해 이벤트가 시작되었는지 여부를 감지 할 수있는 확실한 방법은 없습니다.

+1

재미있는 일 이죠. 이 문제가 발생할 가능성은 매우 낮습니다 ... 자신 만의 코드로 작업하는 경우 originalEvent 속성을 전달하지 않음으로써 발생하지 않을 것임을 보장 할 수 있습니다. – typeof

2

는 인공 이벤트 또는 아니었다 있는지 본다 이벤트는 스크립트가 아닌 입력 장치에 의해 트리거되었습니다.

관련 문제