zoukankan      html  css  js  c++  java
  • addEventListener和attachEvent小结续写

    DOM事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段

    事件捕获(event capturing)的思想是从不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。

    事件冒泡(event bubbling)事件开始时由最具体的元素接受,然后逐级向上传播到较为不具体的节点。

    弱耦合性思想是将HTML和javascript分离开来

    最初DOM采用方式:

    绑定事件:          elem.type=fn(){}               //   元素名.事件类型=函数名(){}        事件类型  type例如onclick

    移除事件:          elem.type=null;

    DOM2采用方式:

    绑定事件:          addEventListener(elem,type,bool)         //   事件类型  type例如click

    移除事件:          removeEventLisnter(elem,type,bool)

    IE-DOM2采用方式:

    绑定事件:         attachEvent(elem,type)           //事件类型  type例如onclick
    移除事件:         detachEvent(elem,type)      

    注:

    标准DOM中事件处理程序会在其所属元素的作用域内容行        this    ===   具体元素
    也可以采用   event.target  指向具体元素

    IE-DOM1中事件处理程序会在其所属元素的作用域内运行        this    ===   具体元素

    IE-DOM2中事件处理程序会在全局作用域中运行                   this    ===   window        

    要指向具体元素    event.srcElemnt

    var EventUtil = {
                addHandler: function (element, type, handler) {
                    if (element.addEventListener) {
                        element.addEventLisener(type, handler, false);
                    }
                    else if (element.attachEvent) {
                        element.attachEvent("on" + type, handler);
                    }
                    else {
                        element["on" + type] = handler;
                    }
                },

                removeHandler: function (element, type, handler) {
                    if (element.removeEventListener) {
                        element.removeEventListener(type, handler, false);
                    }

                    else if (element.detachEvent) {
                        element.detachEvent("on" + type, handler);
                    }
                    else {
                        element["on" + type] = null;
                    }
                }
            }

  • 相关阅读:
    MySQL 锁的监控及处理
    mssql sqlserver 不固定行转列数据(动态列)
    SQL常用增删改查语句--来源于网络
    mssql sqlserver 对不同群组对象进行聚合计算的方法分享
    mssql sqlserver 自动备份存储过程的方法分享
    mssql sqlserver updatetext关键字应用简介说明
    mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享
    mssql sqlserver with cte表达式(递归)找出最顶值的方法分享
    mssql sqlserver text数据类型专题说明
    mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
  • 原文地址:https://www.cnblogs.com/kuikui/p/2297465.html
Copyright © 2011-2022 走看看