zoukankan      html  css  js  c++  java
  • IE中的事件对象

    IE中的事件对象

    1)type属性 用于获取事件类型

    2)srcElement属性 用于获取事件的目标

    3)cancelBubble属性 用于阻止事件冒泡

      设置为true表示阻止事件冒泡  设置为false表示不阻止冒泡

    4)returnValue属性 用于阻止事件的默认行为

        设置为false表示阻止事件的默认行为

    <!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" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        <title>Document</title>
        <script src="script.js"></script>
        <script src="event.js"></script>
        
    
    <script type="text/javascript">
    //dom中的事件对象:
        //type属性获取事件类型
        //target获取事件目标
        //stopPropagation阻止事件冒泡(最具体的元素接收)
        //preventDefault()阻止事件的默认行为
    
    // window.onload=function(){
    //     var btn2=document.getElementById('btn2');
    //     btn2.onclick=function(){
    //         alert('这个是dom0级添加的事件')
    //     }
    // btn2.onclick=null;
       // var btn3=document.getElementById('btn3');
       /*  btn3.addEventListener('click',showMessage,false);
        btn3.addEventListener('click',function(){
            alert(this.value)
        },false);*/
        // btn3.removeEventListener('click',showMessage,false);
        // btn3.attachEvent('onclick',showMessage)
        
    // }
    // function showMessage(event){
    //     event=event || window.event;
    //     var ele=event.target||event.srcElement;
    //     alert(ele);
    //     //alert(ev.target.nodeName);//目标节点名称//target获取事件目标//type获取事件类型
    //     ev.stopPropagation();//阻止事件冒泡(最具体的元素接收)
    // } 
    // function showBox(){
    //     alert("这是一个box")
    // }  
    // function stopGoto(event){
    //     event.stopPropagation();
    //     event.preventDefault();
    // }
    
    
    </script>
    </head>
    <body>
    <div id="box">
        <input type="button"  value="按钮" id="btn" onclick="showMessage()"/>
        <input type="button" value="按钮2" id="btn2"/>
        <input type="button" value="按钮3" id="btn3"/>
        <a href="evnt.html" id="go">跳转</a>
    </div>
    <script>
    // var btn3=document.getElementById('btn3');
    // var box=document.getElementById('box');
    // eventUtil.addHandler(btn3,'click',showMessage);
    // eventUtil.addHandler(box,'click',showBox);
    // eventUtil.addHandler(go,'click',stopGoto);
    // eventUtil.removeHandler(btn3,'click',showMessage);
    </script>
    </body>
    
    </html>
    window.onload=function(){
        var go=document.getElementById('go'),
            box=document.getElementById('box');
        eventUtil.addHandler(box,'click',function(){
            alert('我是整个父盒子');
        });
        eventUtil.addHandler(go,'click',function(e){//接收事件event
            //e=e||window.event;
            e=eventUtil.getEvent(e);//返回event
            alert(eventUtil.getElement(e).nodeName);
            eventUtil.preventDefault(e);
            eventUtil.stopPropagation(e);
        });
    }
    var eventUtil={
            //添加句柄
            // var element,type,handler;
            addHandler:function(element,type,handler){
                if(element.addEventListener){//dom二级
                    element.addEventListener(type,handler,false)
                }else if(element.attachEvent){//IE
                    element.attachEvent('on'+type,handler);
                }else{//dom0级
                    element['on'+type]=handler;//element.onclick===element['onclick']
                }
            },//对象的属性用“,”分隔
        
        //删除句柄
            removeHandler:function(element,type,handler){
                if(element.removeEventListener){//dom二级
                    element.removeEventListener(type,handler,false)
                }else if(element.detachEvent){//IE
                    element.detachEvent('on'+type,handler);
                }else{//dom0级
                    element['on'+type]=null;//element.onclick===element['onclick']
                }
            },
            getEvent:function(event){
                return event?event:window.event;
            },
            getType:function(event){
                return event.type;
            },
            getElement:function(event){
                return event.target || event.srcElement;
            },
            preventDefault:function(event){
                if(event.preventDefault){
                    event.preventDefault();
                }else{
                    event.returnValue=false;
                }
            },
            stopPropagation:function(event){
                if(event.stopPropagation){
                    event.stopPropagation();
                }else{
                    event.cancelBubble=true;
                }
            }
        }
        
  • 相关阅读:
    1722 最优乘车 1997年NOI全国竞赛
    tarjan算法详解
    codevs 原创抄袭题 5969 [AK]刻录光盘
    Kosaraju算法详解
    1722 最优乘车 未完成
    codevs原创抄袭题 5960 信使
    1405 奶牛的旅行
    android 管理Bitmap内存
    Dynamics CRM 2013 初体验(3):新增加的功能
    在android画面切换时设置跟随变动的小圆圈
  • 原文地址:https://www.cnblogs.com/xl900912/p/4221068.html
Copyright © 2011-2022 走看看