JavaScript 이벤트 객체: 현재 이벤트

이벤트 객체 가져오기

W3C 사양에서는 Chrome, FireFox, Opera, Safari, IE9.0 이상에서 이벤트 객체를 전달합니다. all 이 메소드는 지원되지만 IE8.0 이하에서는 이벤트 객체를 window 객체의 속성으로 사용해야 합니다.

◆ W3C 사양을 따르는 브라우저에서는 이벤트 처리 기능의 매개변수를 통해 이벤트 객체가 전달됩니다.

구문:

elementObject.OnXXX=function(e){
    var eve=e; // 声明一个变量来接收 event 对象
}

위에 바인딩된 이벤트 처리 함수에서 매개변수 e는 이벤트 객체를 전달하는 데 사용되며 변수 eve는 현재 이벤트를 나타냅니다. 이 프로세스는 JavaScript에 의해 자동으로 수행됩니다.

예를 들어 이벤트가 발생할 때 마우스 좌표를 얻으려면 다음과 같이 작성할 수 있습니다.

<div id="demo">在这里单击</div>
<script type="text/javascript">
document.getElementById("demo").onclick=function(e){
    var eve=e;
    var x=eve.x; // X坐标
    var y=eve.y;  // Y坐标
    alert("X坐标:"+x+"\nY坐标:"+y);
}
</script>

다음 데모를 참조하세요

QQ截图20161013102330.png

◆ IE8.0 이하에서는 이벤트를 윈도우 객체의 속성으로 사용해야 합니다.

구문:

elementObject.OnXXX=function(){
    var eve=window.event; // 声明一个变量来接收event对象
}

예를 들어, 이벤트가 발생할 때 마우스의 좌표를 얻으려면 다음과 같이 작성할 수 있습니다.

<div id="demo">在这里单击</div>
<script  type="text/javascript">
document.getElementById("demo").onclick=function(){
    var eve=window.event;
    var x=eve.x;  // X坐标
    var y=eve.y;  // Y坐标
    alert("X坐标:"+x+"\nY坐标:"+y);
}
</script>

다음 데모:

QQ截图20161013102438.png

이벤트가 발생한 DOM 요소, 마우스 좌표, 키보드 등 현재 이벤트와 관련된 상태를 얻으려는 경우를 볼 수 있습니다. 키 등의 경우 브라우저 호환성 문제를 처리해야 합니다.

일반적인 코드:

elementObject.OnXXX=function(e){
    var eve = e || window.event;  // 使用 || 运算取得event对象
}

여기서 주목해야 할 점은 || 연산의 반환 값이 반드시 부울 유형일 필요는 없다는 것입니다. | 연산이 true이면 피연산자 자체의 값이 반환됩니다. 위 코드에서 event가 함수의 매개변수로 전달되면 e는 true, eve=e이고, window 객체의 속성으로 사용되면 window.event는 true, eve=window.event입니다.

모든 브라우저와 호환되도록 위의 마우스 좌표 가져오기 코드를 개선하세요.

<div id="demo">在这里单击</div>
<script  type="text/javascript">
document.getElementById("demo").onclick=function(e){
    var eve = e || window.event;
    var x=eve.x;
    var y=eve.y;
    alert("X坐标:"+x+"\nY坐标:"+y);
}
</script>

아래 데모를 참조하세요.

QQ截图20161013102514.png

이벤트 객체의 공통 속성과 메소드

이벤트 객체는 현재 이벤트를 나타내는 데 사용됩니다. 이벤트에는 마우스를 클릭할 때의 위치, 키보드를 눌렀을 때의 키, 이벤트가 발생한 HTML 요소, 기본 동작을 수행할지 여부 등 다양한 상태가 있습니다. 버블링 여부 등은 모두 이벤트 객체의 속성과 메서드로 존재합니다. 해당 상태를 얻으려면 해당 속성과 메서드에 액세스해야 합니다.

이벤트 객체 공통 속성 및 메소드(W3C 사양)

QQ截图20161013102531.png

에서 지정한 속성 및 메소드 외에 위의 W3C 사양 또한 IE 브라우저는 다음 속성도 지원합니다.

이벤트 객체 속성(IE 전용)

QQ截图20161013102545.png

지속적인 학습
||
<html> <head> <title>获取鼠标的坐标信息</title> </head> <body> <div id="demo">在这里单击</div> <script type="text/javascript"> document.getElementById("demo").onclick=function(e){ var eve = e || window.event; var x=eve.x; var y=eve.y; alert("X坐标:"+x+"\nY坐标:"+y); } </script> </body> </html>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~