자바스크립트 이벤트 학습 6장 이벤트 접근_자바스크립트 기술
이제 이벤트 핸들러를 등록했으므로 이벤트에 대해 자세히 알아보고 싶습니다. 우리는 이벤트가 발생했을 때 마우스 위치를 알고 싶고, 사용자가 어떤 키를 눌렀는지 알고 싶습니다. 이 부분에는 성가신 브라우저 호환성 문제가 많이 있지만 이것들은 모두 가능합니다. (여기에서 브라우저 호환성 목록을 빠르게 확인할 수 있습니다).
이벤트 속성을 읽으려면 먼저 이벤트에 액세스할 수 있어야 합니다.
브라우저 호환성
브라우저 전쟁의 관점에서 볼 때 Netscape는 액세스 모델(나중에 W3C에서 참조로 사용됨)과 많은 이벤트 속성을 구현했으며 Microsoft도 동일한 작업을 수행했습니다. 물론 두 모델은 완전히 호환되지 않습니다. 하지만 서문에서 말했듯이
if (W3C/Netscape) {
액세스 및 속성 이름에 W3C/Netscape 모델 사용
}
else if (Explorer) {
액세스 및 속성 이름에 Microsoft 모델 사용
}
이것은 호환성 문제를 해결하는 잘못된 방법입니다. 이는 대부분의 코드를 실행할 수 있지만 이를 고려하지 않은 일부 브라우저를 쓸모없게 만듭니다. 따라서 먼저 이벤트에 액세스한 다음 해당 속성을 별도로 읽어야 합니다.
이벤트 접근 문제를 먼저 논의하고, 이벤트 속성에 대해서는 나중에 논의하겠습니다.
W3C/Netscape
W3C/Netscape 이벤트 액세스 모델에서는 이벤트가 매개변수로 이벤트 핸들러에 전달됩니다. 따라서 이벤트 핸들러
element.onclick=doSomething;
doSomething()을 정의하면 이벤트를 매개변수로 사용합니다. e 변수에 저장하는 것이 일반적입니다. 물론 임의의 이름으로 변경할 수 있습니다.
function doSomething(e) {
// e는 이벤트에 대한 액세스를 제공합니다
}
이것은 완전히 자동이며 추가 작업이 없습니다. 코드가 필요합니다. 익명 함수에서는 다음과 같이 작성할 수 있습니다:
element.onclick = function (e) {alert('Event type is ' e.type)}
Microsoft
Microsoft의 이벤트 액세스 모델에는 발생한 마지막 이벤트를 포함하는 특수 속성 window.event입니다.
element.onclick = doSomething;
function doSomething() {
// window.event는 이벤트에 대한 액세스를 제공합니다
}
오래된 Netscape 속성 window.Event도 있음을 확인하세요. IE는 이것을 이해하지 못하며 Netscape 4는 이를 잘못 해석할 것입니다. 따라서 글을 작성할 때 이벤트가 소문자 e로 시작하는지 확인하세요.
크로스 브라우저 이벤트 액세스
다행히 크로스 브라우저 액세스 이벤트에 대한 스크립트를 작성하는 것은 매우 간단합니다.
function doSomething(e) {
if (!e) var e = window.event ;
// e는 모든 브라우저에서 이벤트에 대한 액세스를 제공합니다
}
인라인 이벤트 핸들러와 병합
인라인 등록 모델에서는 이벤트를 함수에 전달해야 합니다.
function doSomething(e) {
alert( e.type );
}
계속
계속 학습하고 싶다면 다음 장을 읽어주세요.
원본 주소: http://www.quirksmode.org/js/events_access.html
첫번째 번역은 제 트위터 @rehawk를 포함해 주세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

손쉬운 웹 페이지 레이아웃에 대한 jQuery 활용 : 8 에센셜 플러그인 jQuery는 웹 페이지 레이아웃을 크게 단순화합니다. 이 기사는 프로세스를 간소화하는 8 개의 강력한 JQuery 플러그인을 강조합니다. 특히 수동 웹 사이트 생성에 유용합니다.

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 튜토리얼은 Ajax를 통해로드 된 동적 페이지 상자를 작성하여 전체 페이지 재 장전없이 인스턴트 새로 고침을 가능하게합니다. jQuery 및 JavaScript를 활용합니다. 맞춤형 Facebook 스타일 컨텐츠 박스 로더로 생각하십시오. 주요 개념 : Ajax와 JQuery

10 재미있는 jQuery 게임 플러그인 웹 사이트를보다 매력적으로 만들고 사용자 끈적함을 향상시킵니다! Flash는 여전히 캐주얼 웹 게임을 개발하기위한 최고의 소프트웨어이지만 JQuery는 놀라운 효과를 만들 수 있으며 Pure Action Flash 게임과 비교할 수는 없지만 경우에 따라 브라우저에서 예기치 않은 재미를 가질 수 있습니다. jQuery tic 발가락 게임 게임 프로그래밍의 "Hello World"에는 이제 jQuery 버전이 있습니다. 소스 코드 jQuery Crazy Word Composition 게임 이것은 반은 반은 게임이며, 단어의 맥락을 알지 못해 이상한 결과를 얻을 수 있습니다. 소스 코드 jQuery 광산 청소 게임

이 JavaScript 라이브러리는 Window.Name 속성을 활용하여 쿠키에 의존하지 않고 세션 데이터를 관리합니다. 브라우저에 세션 변수를 저장하고 검색하기위한 강력한 솔루션을 제공합니다. 라이브러리는 세 가지 핵심 방법을 제공합니다 : 세션

이 튜토리얼은 jQuery를 사용하여 매혹적인 시차 배경 효과를 만드는 방법을 보여줍니다. 우리는 멋진 시각적 깊이를 만드는 계층화 된 이미지가있는 헤더 배너를 만들 것입니다. 업데이트 된 플러그인은 jQuery 1.6.4 이상에서 작동합니다. 다운로드
