zoukankan      html  css  js  c++  java
  • javascript高级程序设计13章总结 事件

    1、事件分为事件冒泡(IE)和事件捕获2种,冒泡是由目标事件向上,一次到document,body的过程,事件捕获是由body向下,到document,目标事件的过程。

    2、DOM2定义了2种处理事件的方法,分别是addEventListener()添加事件监听和removeEventListener()删除事件监听,他们分别传入3个参数,第一个参数是事件类型,第二个参数是处理事件的函数,第三个参数是一个布尔类型,如果要在事件冒泡中传入函数设置为false,如果在事件监听中传入函数则设为true.

    <div id="btn">我是测试事件监听的</div>
    <script>
    var Btn=document.getElementById("btn");
    var handler=function(){
        alert(this.id);
    };//
    Btn.addEventListener("click",handler,false);//如果这里不是handler而是直接传入匿名函数,就会导致这个匿名函数永远无法被删除
    Btn.removeEventListener("click",handler,false);
    </script>

    3、IE有自己的事件处理程序,attach()添加事件处理,detach()删除事件,他们传入2个参数,第一个参数是处理的事件类型,(注意这里需要添加点击事件的时候不是click而是onclick),第二个参数是处理事件的函数

    <div id="btn">我是IE事件处理<div>
    var Btn=document.getElementById("btn");
    var handler=function(){
      alert(this.id);
    };
    Btn.attachEvent("onclick",handler);
    Btn.detachEvent("onclick",handler);

    4、跨浏览器的事件处理,创建事件的方法用addHandler();删除事件的方法用removeHandler,他俩都属于一个对象EventUntil,他俩都接收3个参数(要操作的元素,事件的类型,事件的处理函数);

    var EventUtil={
            addHandler:function(element,type,handler)
            {
                if(element.addEventListener){
                    element.addEventListener(type,handler,false)
                }else if(element.attachEvent)
                {
                    element.attachEvent("on"+type,handler)
                }else{
                    element["on"+type]=handler
                }
            },
            removeHandler:function(element,type,handler)
            {
                if(element.removeElementListener){
                    element.removeElementListener(type,handler,false)
                }else if(element.detachEvent){
                    element.detachEvent(type,handler)
                }else{
                    element["on"+type]=null;
                }
            }
        }
  • 相关阅读:
    Swap 2 Variables in Python
    Python Static Method
    Longest Palindromic Substring-Dynamic Programing
    Config Static IP Address manually in Ubuntu
    network FAQ
    [Python] Send emails to the recepients specified in Message["CC"]
    Rare But Powerful Vim Commands.
    主机名 域名 网站名 URL
    Extracts
    关于hibernate一对一配置
  • 原文地址:https://www.cnblogs.com/yuyu9988/p/3365791.html
Copyright © 2011-2022 走看看