zoukankan      html  css  js  c++  java
  • 事件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
                <ul>
                    <li>a</li>
                    <li>a</li>
                    <li>a</li>
                    <li>a</li>
                </ul>
                <script type="text/javascript">
                var Li=document.getElementsByTagName('li');//点击排序
                var len=Li.length;
                for(var i=0;i<len;i++){
                    (function (i){
                      Li[i].addEventListener('click',function (){
                          console.log(i);
                      } ,false);  
                    }(i))
                }
    
        <div style=" 100px;height:100px;background: red; "> </div>//点击换色
        
        var div=document.getElementsByTagName('div')[0];
            div.onclick=function (){
                this.style.background='green';
            }
            div.addEventListener('click' ,function (){
                console.log('s');
            }, false);
    
        </script>
    </body>
    </html>
    <!--步骤1.事件处理程序的运行环境addEvent()
    2.事件对象兼容
        var event=e||window.event;
        var target=event.target||event.srcElement;
    3.封装取消冒泡的函数stopBubble(event)
    4.封装阻止默认事件的函数cancelHaddler(event)
    
    
    //1.on+type
    兼容性很好,但一个元素的同一个事件上只能用一次
    2.obj.addEventListener(type,fn,false)
    IE9以下不兼容,可为一个事件绑定多个处理程序
    3.obj.attachEvent("on"+type,fn);
    IE独有,一个事件同样可以绑定多个处理程序
    
    //解除事件处理程序
    ele.onclick=false/null;
    ele.removeEventListener(type,fn,fasle)
    ele.datachEvent('on'+type,fn)
    
    //事件处理程序的运行环境
    封装兼容性的addEvent(elem,type,handdle);方法
    function addEvent(elem,type,haddle){
        if(elem.addEventListener){
            elem.addEventListener(type,haddle,false);
        }else if(elem.attachEvent){
            elem.attachEvent('on'+type,funvtion (){
                handle.call(elem);
            })
        }else{
            elem['on'+type]=haddle;
        }
    }
    
    //冒泡 捕捉
    先捕捉再冒泡 focus blur,change,submit,reset,select等事件不冒泡
    false是冒泡
    true是捕捉
    //取消冒泡
    1.W3C标准 event.stopPropagation();但不支持ie9以下版本 
      div.onclick=function (e){e.stopPropagation();}
    2.IE独有 event.cancerBubble=true;
    div.onclick=function (e){e.cancerBubble=true;}
    3.封装取消冒泡的函数 stopBubble(event)
    
    //阻止默认事件
    1.默认事件-表单提交,a标签跳转,右键菜单等
    2. return false;一对象属性的方式注册的事件才会生效
     document.oncontextmenu=function (){
         console.log('a');
         return fasle;
     }
    3.event.preventDefault();W3c标注,IE9以下不兼容
    document.oncontextmenu=function (e){
        console.log('a');
        e.preventDefault();
    }
    4.event.returnValue=false;兼容IE
    document.oncontextmenu=function (e){
        console.log('a');
        e.returnValue=false;
    }
    
    5.封装阻止默认事件的函数:cancelHanddler(event)
     function cancelHanddler(event){
         if(event.preventDefault){
            event.preventDefault();
         }else{
            event.returnValue=false; 
         }
     }
    
     //事件对象
     event||window.event用于IE
     //事件源对象
     1.event.target 火狐只有这个
     2.event.srcElement IE只有这个
     3.这俩个Chrome都有
      =function (e){
        var event=e||window.event;
        var target=event.target||event.srcElement;
        console.log(target);
    }
     //兼容性写法
  • 相关阅读:
    Chapter 1. 数据库(介绍、主键、外键)
    练习、悬浮标签、导航菜单
    Chapter 3. document对象
    Chapter 3. JavaScript
    Chapter 2. HTML---CSS样式表(格式与布局)
    Chapter 2. HTML---CSS样式表
    12月26 一维数组
    12月23 语句
    12月23 运算符
    12月21 vs2012 数据类型
  • 原文地址:https://www.cnblogs.com/wxy0715/p/12442356.html
Copyright © 2011-2022 走看看