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

  • 相关阅读:
    微信小程序路由跳转 wx.navigateTo() 失败
    微信小程序文件下载 wx.downloadFile()、 wx.saveFile() 和 wx.openDocument()
    Vue——项目中接口返回值为函数回调,回调函数定义方法(Vue的方法给原生调用)
    h5页面判断移动端系统为Android或IOS
    解决小程序报错 Page "pages/index/main" has not been registered yet.
    mpvue路由传参报错Cannot read property 'query' of undefined
    解决前端项目启动时报错:Use // eslint-disable-next-line to ignore the next line.
    解决npm报错:Module build failed: TypeError: this.getResolve is not a function
    APIO2016赛艇
    容斥小结
  • 原文地址:https://www.cnblogs.com/kuikui/p/2297465.html
Copyright © 2011-2022 走看看