>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬의 attachmentEvent 사용 분석 예

javascript_javascript 스킬의 attachmentEvent 사용 분석 예

WBOY
WBOY원래의
2016-05-16 15:59:021174검색

이 기사의 예에서는 자바스크립트에서 AttachEvent를 사용하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

일반적으로 JS에서는 이런 이벤트를 추가합니다

obj.onclick=방법

이 이벤트 바인딩 방법은 주류 브라우저와 호환되지만 동일한 이벤트가 요소에 여러 번 추가되면 어떻게 될까요?

obj.onclick=method1
obj.onclick=method2
obj.onclick=method3

이렇게 작성하면 마지막 바운드 이벤트인 메소드 3만 실행됩니다. 이때는 onclick을 사용할 수 없습니다. IE에서는 AttachEvent 메소드를 사용할 수 있습니다.

btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);

형식 앞에는 이벤트 유형이 있습니다. onclick, onsubmit, onchange 등을 추가해야 합니다. 실행 순서는

입니다.

방법3->방법2->방법1

안타깝게도 이 Microsoft 비공개 메서드는 Firefox 및 기타 브라우저에서 지원되지 않습니다. 다행히도 모두 W3C 표준 addEventListener 메서드를 지원합니다.

btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);

실행 순서는 method1->method2->method3

입니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>attachEvent</title>
<script type="text/javascript">
//第一种方式(微软的私人方法)
function iniEvent() {
  var btn = document.getElementById("btn");
  btn.attachEvent("onclick", click1);
  btn.attachEvent("onclick", click2);
  btn.attachEvent("onclick", click3);
}
//第二种方式(火狐和其他浏览器)
function iniEvent2() {
  var btn = document.getElementById("btn");
  btn.addEventListener("click", click1, false);
  btn.addEventListener("click", click2, false);
  btn.addEventListener("click", click3, false);
}
function click1() {
  alert('click1');
}
function click2() {
  alert('click2');
}
function click3() {
  alert('click3');
}
</script>
</head>
<body onload="iniEvent()">
<input type="button" id="btn" value="attachEvent" />
</body>
</html>

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.