이 기사의 예에서는 자바스크립트에서 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 프로그래밍 설계에 도움이 되기를 바랍니다.