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;
                    }
                }
            }

  • 相关阅读:
    将jar打包成exe
    CXF + Spring 开发 Webservices
    关于highstock横坐标的一些的一些说明(1)使用UTC时间
    JAX-WS + Spring Integration Example
    EMA指标和MACD指标的JAVA语言实现
    MACD详细计算方法及例子
    notepad 不换行的问题
    eclipse 编码设置(转)
    如何理解作用域
    js中new一个对象的过程
  • 原文地址:https://www.cnblogs.com/kuikui/p/2297465.html
Copyright © 2011-2022 走看看