addEventListener和attachEvent小结续写

简介: DOM事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段 事件捕获(event capturing)的思想是从不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。 事件冒泡(event bubbling)事件开始时由最具体的元素接受,然后逐级向上传播到较为不具体的节点。

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

目录
相关文章
|
3月前
|
JavaScript
如何写事件冒泡和事件捕捉?
如何写事件冒泡和事件捕捉?
|
3月前
|
JavaScript 前端开发
js基础——事件(鼠标事件、键盘事件、表单事件......)
js基础——事件(鼠标事件、键盘事件、表单事件......)
29 0
|
3月前
|
JavaScript
JS事件,你真的懂吗(捕获,冒泡)?
JS事件,你真的懂吗(捕获,冒泡)?
27 0
|
10月前
|
JavaScript 前端开发
常用的click事件居然这么多门道,赶紧卷
你真的了解 onclick 点击事件吗? onclick 是异步的还是同步的?事件的触发顺序你了解过吗?现在我就带你一起来了解一下 onclick 事件前后左右的一些事情。
105 0
|
10月前
|
定位技术
使用brython做个迷宫游戏-3:监听键盘事件
使用brython做个迷宫游戏-3:监听键盘事件
67 0
|
10月前
|
前端开发 JavaScript UED
前端祖传三件套JavaScript的DOM之事件的各种具体事件类型的键盘/文本
在前端开发中,JavaScript 中的 DOM 事件机制提供了丰富的功能和灵活的方式来处理各种事件。本文将介绍 JavaScript 中常见的键盘/文本事件类型,包括输入事件、按键事件和复制/剪切/粘贴事件。
104 0
|
10月前
|
前端开发 JavaScript UED
前端祖传三件套JavaScript的DOM之事件的各种具体事件类型的鼠标/滚轮
在前端开发中,JavaScript 中的 DOM 事件机制提供了丰富的功能和灵活的方式来处理各种事件。本文将介绍 JavaScript 中常见的鼠标/滚轮事件类型,包括鼠标事件、滚轮事件。
363 0
|
JavaScript
史上最详细的DOM事件之剪贴板事件
史上最详细的DOM事件之剪贴板事件 上篇博客讲了DOM的表单事件,这篇博客我们来讲一讲DOM的剪贴板(ClipboardEvent)事件。 HTML代码: <div id="box">hello world</div> <p>这是一个段落标签</p> <input type="text" id="text"> 1 2 3 1.oncopy(赋值)事件 var oBox = document.getElementById("box"); var oText=document.getElementById("text");
|
JavaScript
史上最详细的DOM事件之键盘事件
HTML代码: <input type="text" name="" id="text"> <input type="text" name="" id="text2"> 1 2 1.onkeydown事件 var oText=document.getElementById("text"); var oText2=document.getElementById("text2"); // onkeydown 某个键盘按键被按下。 针对所有键 oText.onkeydown=function(event){ co
|
JavaScript 前端开发
史上最详细的DOM事件之鼠标事件
史上最详细的DOM事件之鼠标事件 说到JavaScript的DOM,不得不提的就是DOM事件,当然DOM中事件包含好多,我们先来讲一讲DOM的鼠标事件。 HTMl代码: <h1>01DOM的鼠标事件</h1> <div id="wrap"> <div class="box">onclick</div> <div class="box">oncontextmenu</div> <div class="box">ondblclick</div> <div class="box">onmousedown</div> <div class