2013-10-27 4 views
12

originalEvent의 JavaScript 사용에 대한 이해를 돕는 사람이 있습니까? 정말 그것에 대한 문서의 좋은 소스를 찾을 수 없습니다.자바 스크립트 originalEvent 이해하기

Google 결과를 통해 초보자를 이해하는 데 너무 복잡한 토론 사이트로 안내 할 수있었습니다.

는 최근 SO에 문제가 있고, 사람은 BTW 일 기존 코드에 코드

$("#url").bind('paste', function(e) { 
    var val = e.originalEvent.clipboardData.getData('text/plain'); 
.... 

이 라인을 추가하여 대답했다.

다른 사람이 사용법을 이해할 수 있도록 도와 주시면 대단히 감사하겠습니다.

+1

참조 http://stackoverflow.com/questions/16674963/event-originalevent-jquery – hiattp

+1

'originalEvent'는 자바 스크립트가 아니며, [a jQuery thing] (http://api.jquery.com/category)입니다./events/event-object /). 'jquery' 태그를 추가했습니다. –

답변

18

$() 함수의 출처 인 jQuery라는 JavaScript 라이브러리를 사용하고 있습니다. jQuery는 사용하기 쉽게 JavaScript의 여러 부분을 래핑합니다. 이러한 부분 중 하나는 이벤트 처리입니다. 예제에서 jQuery를 사용하여 붙여 넣기 이벤트에 바인딩하기 때문에 콜백 (e)에 전달 된 객체는 내장 JavaScript 이벤트 객체가 아닌 jQuery event object입니다. jQuery 이벤트 객체는 기본 내장 이벤트 객체에 액세스 할 수 있도록 originalEvent 속성을 제공합니다.

예제에서 jQuery 이벤트 객체를 통해 사용할 수없는 클립 보드 데이터를 가져와야하므로 원본 이벤트 객체에 액세스해야합니다.

+0

일부 배경. 나는 붙여 넣기되는 데이터를'paste' 이벤트로 포착 할 필요가있다. 하지만 왜 데이터를 얻기 위해서'originalEvent'가 필요한지 알 수 없습니다. 왜 단순한'var val = $ ("# url"). val()'작동하지 않습니까? 내 사건에 왜 필요한거야? – bobbyjones

+0

#url은 무엇이며 달성하고자하는 것은 무엇입니까? – joews

+0

그 입력 필드, 그리고 내가 YouTube 링크를 캡처, 구문 분석하고 정규식을 통해 유튜브 ID를 얻을 필요가 단순히 그것을 인쇄 할 수 있습니다. – bobbyjones

2

특정 이벤트는 이벤트 고유의 속성을 가질 수 있습니다. 이러한 이벤트는 event.originalEvent 객체의 속성으로 액세스 할 수 있습니다.

는 출처 : jQuery Event object 당신의 예에서

paste eventclipboardData 속성은 event.originalEvent를 통해 액세스 할 수 있습니다.

+0

오케이. 이걸 내 코드와 연관 짓고 이해하려고 노력하니. 내 '붙여 넣기'이벤트에서 일부 유형의 속성에 액세스해야한다고 말하는 것입니까? 따라서'originalEvent? '의 사용 – bobbyjones

+0

예. 대답 끝에이 문장을 추가했습니다. jQuery는 브라우저 이벤트를 범용 이벤트 속성을 제공하는 이벤트 객체로 래핑하지만, 때로는 붙여 넣기 이벤트의 경우 붙여 넣은 데이터와 같은 특수 속성에 액세스해야합니다. – kol

0

음 ... originalEvent은 (는) javascript에서 가져온 것이 아닙니다. 그것은 브라우저에 의해 촉발 된 것입니다. Jquery는 더 많은 속성을 감싸고 브라우저의 원래 이벤트는 originalEvent으로 묶입니다. 다음은 jquery 사이트에서 찾은 것입니다.

"이벤트 객체에는 브라우저 자체에서 만든 이벤트 객체 인 originalEvent라는 속성이 포함되어 있습니다 .jQuery는이 기본 이벤트 객체를 유용한 메소드 및 속성과 함께 래핑하지만 경우에 따라 예를 들어 event.originalEvent를 통해 원래 이벤트에 액세스해야합니다. 특히 휴대 기기 및 태블릿의 터치 이벤트에 유용합니다. "

관련 문제