zoukankan      html  css  js  c++  java
  • DOM 事件

    事件模型
     
        事件冒泡:事件源从里边元素逐级传到外层元素  (一般使用事件冒泡)

        事件捕获:从根元素传到目标元素

        addEventListener("click",functionName,false);     // false 冒泡执行,true捕获执行

     
    事件处理程序
     
         传统方式
         <button id="btn" onclick="alert(123)">点我</button>
         // 这种方式脚本和html结构耦合度太高,不建议使用
     
         DOM0级事件处理程序
         <button id="btn" onclick="show()">点我</button>
        <script>
             function show(){
                  alert(123);
             }

             var btn = document.getElementById("btn");

             // 添加事件
             btn.onclick = function(e){
                       alert(“这里是dom0级事件处理”)
                  }

             // 清除事件
             btn.onclick= null;  

        </script>

     
    DOM2级事件处理程序 (没有1级,直接跨过)
     
         指定了两个方法用于添加/删除事件处理程序。接受三个参数
         addEventListener(“eventType”,function(){},false)
         removeEventListener()
         3参数 :事件名(如click)  、处理函数、bool值(指定事件执行阶段,默认false 冒泡阶段)
     
         <button id="btn" onclick="show()">点我</button>
        <script>
             function show(){
                  alert(123);
             }

             var btn2 = document.getElementById("btn");
             btn.onclick = function(e){
                       alert(“这里是dom0级事件处理”)
                  }

             btn.onclick= null;


             btn2.addEventListener("click",show,false);


             // 删除指定事件,传入的参数和添加的时候保持一致
             btn2.removeEventListener("click",show,false)
           
        </script>

     
    IE 事件处理及跨浏览器兼容
         
         ie中的事件都是在冒泡阶段执行的
     
         ie中的事件处理程序 (和addEventListener一样,没有第三个参数)
         
              attachEvent()  // 添加事件
     
              detachEvent()  // 删除事件
         
     
         兼容处理
     
             var eventUtil = function(el,type,handle){
                  if(el.addEventListener){
                        el.addEventListener(type,handle,false)
                   }else if(el.attachEvent){
                        el.attachEvent(type,handle);
                   }else{
                       // el.onclick = handle;
                        el["on"+type] = handle;
                   }
              }
     
    事件对象 event
     
         btn.onclick = function(event){
     
             // event.clientX;     // 鼠标在视窗中X轴的位置
            //  event.clientY;
     
               event.type   // 事件类型 如 click
     
               event.keyCode   // 按下的键值
     
                event.target     // 获取事件的目标
     
                 // 组织事件冒泡
                 event.stopPropagation();
     
                 event.preventDefault();
          }
     
     
         在IE中  var event=  event || window.event
     
              event.type  表示事件类型
     
              event.srcElement  表示事件目标
     
              event.canelBubble = false  用于阻止事件冒泡 (true 阻止冒泡)
     
              event.returnValue = false;    // 阻止默认行为
     
     
     
    常用事件
     

        keyDown : 对任意键,按下时执行,按着不放会重复执行
         
        keyPress : 对字符键,按下时执行,按着不放会重复执行
         
        keyUp:对任意键,松开按键执行,执行一次

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

     

  • 相关阅读:
    《Django By Example》第十二章(终章) 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十一章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第八章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
    我的superui开源后台bootstrap开发框架
    LayoutInflater 总结
    Android屏幕分辨率概念(dp、dip、dpi、sp、px)
    android studio安装问题
  • 原文地址:https://www.cnblogs.com/rsky/p/4679923.html
Copyright © 2011-2022 走看看