js 에서 addEventListener, attachEvent, removeEventListener, detachEvent 는 IE 와 FF 에서 서로 다른 용법 을 사용 합 니 다.

6902 단어 attachEvent
FireFox 의 addEventListener 사용법.
addEventListener 의 인 자 는 모두 세 개 입 니 다. 문법 은 다음 과 같 습 니 다.
element.addEventListener(type,listener,useCapture)
원형: target. addEventListener (type, listener, useCapture);파라미터: target: 감청 대상;type: 감청 이벤트;listener: 처리 함
세다useCapture: 감청 순서 방식 의 용도: 특정한 사건 을 감청 하고 해당 하 는 작업 을 수행 합 니 다.예 를 들 어 window. addEventListener ("load", loadpwindow (), false);감청 창
창 을 불 러 올 때 loadWindow () 함 수 를 실행 합 니 다.예 를 들 어 세 번 째 매개 변 수 를 설명 합 니 다. 이 매개 변 수 는 useCapture 라 고 하 는데 불 값 입 니 다. 즉, true 또는 false 입 니 다.
감청 순 서 를 정 하 다.예 를 들 어 감청 대상 1 은 층 1 이 고 감청 대상 2 는 층 2 이 며 층 1 은 층 2 를 포함 하고 모두 감청 클릭 사건 을 감청 한다.층 2 를 누 르 면 층 1 과 층 2 가 응답 해 야 합 니 다. 응답 순서.
useCapture 에서 결정 하 겠 습 니 다.true 일 때 브 라 우 저 는 Capture 방식 을 사용 합 니 다. 먼저 바 텀 을 실행 합 니 다. 즉, 먼저 처리 층 1, 다시 처리 층 2. false 일 경우 Bubbling 방식 입 니 다.
먼저 꼭대기 층, 즉 먼저 처리 층 2, 다시 처리 층 1 을 처리 합 니 다.
html 코드
< div id = "div test" > < input type = "button" id = "btn test" value = "se4. cn 기술 기지" / > < / div >
js 코드
window.onload=function(){ document.getElementById("div_test").addEventListener("click",test1,false); document.getElementById
("btn test"). addEventListener ("click", test 2, false);} function test 1 () {alert ("외부 div 트리거")} function test 2 () {alert ("내부 입력 트리거")}}
userCapture 가 true 라면 test 1 이 먼저 터치 하고 userCapture 가 false 이면 test 2 가 먼저 터치 합 니 다.
이 예 는 인터넷 에서 온 예 입 니 다.
document.getElementById("btn").onclick = method1; document.getElementById("btn").onclick = method2; document.getElementById("btn").onclick = method3;이렇게 쓰 면 medhot 3 만 실 행 됩 니 다.
이렇게 썼 습 니 다: var btn1Obj = document. getElement ById ("btn 1"); /object.attachEvent(event,function); btn1Obj.attachEvent("onclick",method1); btn1Obj.attachEvent("onclick",method2); btn1Obj.attachEvent("onclick",method3);실행 순 서 는 method 3 - > method 2 - > method 1 입 니 다.
Mozilla 시리즈 라면 이 방법 을 지원 하지 않 습 니 다. addEventListenervar btn1Obj = document. getElement ById ("btn 1") 를 사용 해 야 합 니 다. / /element.addEventListener(type,listener,useCapture); btn1Obj.addEventListener("click",method1,false); btn1Obj.addEventListener("click",method2,false); btn1Obj.addEventListener("click",method3,false);실행 순 서 는 method 1 - > method 2 - > method 3 입 니 다.
 
-------------------------my demo
//       

    //  IORI.addEvent(window,'load',test6);   

    //    IORI.addEvent(window,'load',test5);   

    //               

    function addEvent(node,type,listener){

        if(!IORI.isCompatible){return false;}

        if(!(node=$(node))) {return false;}

        

        if(node.addEventListener){

            //W3C      

            node.addEventListener(type,listener,false);

            return true;

        }

        else if(node.attachEvent){

                //MS IE    

                node.attachEvent('on'+type,listener)

                /*node['e'+type_]=listener;   

                node[type_]=function()   

                {                  

                    node['e'+type_](window.event);   

                }              

                node.attachEvent('on'+type_,node[type_]);  */

                return true;

        }

        

        //            

        return false; 

    }

    IORI.addEvent = addEvent;

    

    //       

    //   IORI.removeEvent(window,'load',test6);  

    function removeEvent(node,type,listener){

        if(!(node=$(node))){

            return false;    

        }    

        

        if(node.removeEventListener){

             //W3C    

            node.removeEventListener(type,listener,false);

            return true;

        }

        else if(node.detachEvent){

            node.detachEvent('on'+type,listener);

            return true;    

        }

        

        return false;

    }

    IORI.removeEvent = removeEvent;

 

좋은 웹페이지 즐겨찾기