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月前
第二十二章 案例TodoList之鼠标事件
第二十二章 案例TodoList之鼠标事件
|
3月前
|
JavaScript
JS事件,你真的懂吗(捕获,冒泡)?
JS事件,你真的懂吗(捕获,冒泡)?
29 0
|
3月前
|
JavaScript 前端开发
js基础——事件(鼠标事件、键盘事件、表单事件......)
js基础——事件(鼠标事件、键盘事件、表单事件......)
29 0
|
8月前
|
JavaScript
对JS事件的了解
对JS事件的了解
|
8月前
|
JavaScript
请解释什么是事件代理
请解释什么是事件代理
|
JavaScript
|
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事件之剪贴板事件 上篇博客讲了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");
JavaScrip 常用的键盘事件
JavaScrip 常用的键盘事件
81 0