;/html>

위 코드에서 볼 수 있듯이 A 태그를 클릭하면 "Hello"가 팝업되는 것은 의심의 여지가 없습니다. onclick 이벤트 외에도 onmouseover, onmouseout, onmousemove 등이 있으며 이러한 이벤트는 모두 DOM 요소 자체에 내재되어 있지만 이제 이를 확장하여 tagA.bind를 지원하도록 할 수 있습니다. tagA.onclick=function(){} 대신 tagA.bind("click",function(){})를 사용하세요. 이제 목적은 매우 명확해졌습니다. 먼저 다음 코드를 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.



DOM 함수 확장

안녕하세요




위의 코드는 함수를 확장한 후의 최종 결과입니다. 이전 코드와 기능은 동일하지만 지금은 실행할 수 없습니다. 그 전에 먼저 살펴보겠습니다. 이것은 매우 중요합니다.
1. HTMLElement. DOM 표준에서 각 요소는 HTMLElement에서 상속되고, Element는 Node에서 상속됩니다. HTMLElement의 프로토타입을 사용하여 HTML을 확장하는 방법 요소의 메소드와 속성을 구현하는 방법은 무엇입니까? 코드를 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.
< ;!DOCTYPE html>


DOM 함수 확장


                                                      !--
HTMLElement.prototype.Alert=function(){
Alert("확장 방법입니다");
}
var tagA=document.getElementById ("tagA");
tagA.Alert();
//-->





위 코드는 페이지가 로드될 때 "이것은 확장 방법입니다"라는 팝업이 표시됩니다. 그러나 IE6, 7, 8에서는 오류가 발생하지만 IE9 이상에서는 작동하지 않는다는 것을 눈치채셨을 것입니다. 또는 Chrome, Firefox, Opera와 같은 브라우저에서는 모든 것이 정상적으로 실행됩니다. 이는 호환성 문제이므로 나중에 해결될 것입니다.
위 코드는 유연성이 충분하지 않습니다. 더 유연하게 최적화해 보겠습니다.
코드를 복사하세요 다음과 같습니다:




DOM 함수 확장</ title><br> </head><br> <body><br> <a href="javascript:void(0)" id="tagA">안녕하세요</a><br> < script type="text/javascript"> 동적 확장 사용<BR> }<BR> function Alert(){<BR> Alert("확장 방법입니다.");<BR> }<BR> var tagA =document. getElementById("tagA");<BR>             tagA.Alert(); html><br><br><br>위 코드에서 볼 수 있듯이 DOMExtend 메소드를 사용하면 서로 다른 확장을 전달할 수 있습니다. 이름과 fn. <br> 2. HTMLElement에 대한 이야기를 마치고 이벤트 바인딩에 대해 이야기하겠습니다. 많은 사람들이 IE와 다른 브라우저의 이벤트 바인딩 방법이 다르다는 것을 알고 있습니다. 모든 브라우저와 호환되는 이벤트 바인딩을 구현하는 코드는 다음과 같습니다. <br> <br><br><br><br>코드 복사</div> <br><br> 코드는 다음과 같습니다.<br><div class="codetitle"> <span>function BindEvent(elem,event,fun){<a style="CURSOR: pointer" data="64137" class="copybut" id="copybut64137" onclick="doCopy('code64137')"> if(elem.addEventListener){<u> elem.addEventListener(event,fun,false);</u> }</a> else{</span> elem.attachEvent("on" event,fun);</div> } <div class="codebody" id="code64137">}<br><br><br>다음은 이벤트 바인딩의 예입니다. <br><br><br><br><br>코드 복사<br> </div> <br> 코드 <br><div class="codetitle"> <span><!DOCTYPE html><a style="CURSOR: pointer" data="46384" class="copybut" id="copybut46384" onclick="doCopy('code46384')"><html lang="zh"><u> <head></u> <title>DOM 함수 확장< /title> ;</a> </head></span> <body></div> <a href="javascript:void(0)" id="tagA">안녕하세요</a><div class="codebody" id="code46384"> < ;script type="text/javascript"><br> <!--<BR> function BindEvent(elem,event,fun){<BR> if(elem.addEventListener){<BR> elem.addEventListener(event) ,재미,거짓);<BR>                                                                                   var tagA=document.getEl ementById("tagA ");<BR> function Alert(){<BR> Alert("이벤트 바인딩입니다.");<BR> }<BR> BindEvent (tagA,"클릭",경고);<BR> //-- ><br> </script><br> </body><br></html><br><br><br>위 코드를 실행한 후 "Hello"를 클릭하면 "This is event Binding"이 팝업됩니다. 여기서 언급할 가치가 있는 것은 addEvenListener의 세 번째 매개변수입니다. 여기서 값은 false이며 이는 Capture 메소드를 취소한다는 의미입니다. 그리고 버블링 방식을 사용합니다. 두 가지 표준 이벤트 트리거 방법이 있습니다. 하나는 캡처 유형(caputre)이고 다른 하나는 버블 유형이지만 IE는 버블 유형만 지원합니다. 캡처링 방식의 특징은 트리거링 방식이 외부에서 내부로 이벤트를 발생시키는 반면, 버블링 방식은 내부에서 외부로 이벤트를 발생시키는 것입니다. 위 코드의 A 요소가 DIV 요소로 래핑되어 있다고 가정합니다. A 요소가 관련되어 있는 경우 상위 요소 DIV에는 onclick 이벤트가 있으므로 버블 유형은 A를 클릭하면 A의 이벤트가 먼저 트리거되고 그 반대의 경우도 마찬가지입니다. , 캡처 유형입니다. <br> 좋습니다. 위의 분석을 통해 HTMLElement 확장과 이벤트 바인딩에 대해 잘 이해했다고 생각합니다. 이 두 가지 지식을 결합하면 다음 코드를 작성할 수 있습니다. <br><div class="codetitle"> <span><a style="CURSOR: pointer" data="73087" class="copybut" id="copybut73087" onclick="doCopy('code73087')"> <u>코드 복사</u></a></span> 코드는 다음과 같습니다.</div> <div class="codebody" id="code73087"> <br><!DOCTYPE html><br><html lang="zh"><br> <head><br> <title>DOM 함수 확장


Hello