美文网首页
[js]事件流与事件处理程序

[js]事件流与事件处理程序

作者: 歇歇 | 来源:发表于2015-08-29 21:24 被阅读382次

事件流

事件
是文档或在浏览器窗口发生的特定的交互瞬间。
js和html之间的交互都是通过事件触发的。
事件流概述
当浏览器发展到第四代时(IE4和Netscape Communicator 4),浏览器的开发团队遇到一个很有意思的问题:页面的哪一部分会拥有特定的事件?想象下在一张纸上有一组同心圆,如果你把手指放在圆心上,那么你的手指指向的不是一个圆,而是一组圆。两家公司的开发团队在看待浏览器事件方面还是一致的。如果你单击了某个按钮,那么同时你也单击了按钮的容器元素,甚至整个页面。

事件流描述的是从页面中接受事件的顺序。但有意思的是,IE和Netscape开发团队居然提出了两个截然相反的事件流概念,也就是IE提出的事件冒泡流和Netscape提出的事件捕获流。

  • 事件冒泡
    指事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(这也是我们现在所常用的事件流)。
  • 事件捕获
    不太具体的节点应该更早的接收到事件,而最具体的节点应该在最后接收到节点。

事件流分级

DOM0级
所有浏览器都支持DOM0级事件处理程序,且使用该方式时,事件处理程序是在元素的作用域中运行,因此程序中的this都是指向元素。
添加事件

var oDiv1 = document.getElementById("div1");
  oDiv1.onclick = function(){
  alert(this===oDiv1);//true
}

移出事件
oDiv1.onclick = null;
目前为止,我还是非常喜欢DOM0级事件处理程序的,没有浏览器兼容性问题;但是一个DOM0级事件只能给某一个元素添加一个事件处理函数,而DOM2级事件处理程序(事件监听机制)可以给同一个元素依次添加多个事件处理;

DOM2级

IE9(含)以上,firefox,chrome,safari使用以下方法:

  • 添加事件
oDiv.addEventListener(" click ",fOne,false);
oDiv.addEventListener(" click ",fTwo,false);
oDiv.addEventListener(" click ",fThree,false);

注意:这里的事件名是在DMO0级的基础上去掉"on"的,这里的false是指不使用事件捕获流。

  • 移除事件
oDiv.removeEventListener(" click ",fOne,false);
oDiv.removeEventListener(" click ",fTwo,false);

注意:在移除事件时,事件处理程序的参数序和添加时的参数一致。

IE8(含)以下的IE浏览器使用以下方法:
oDiv.attachEvent(" onclick ",fOne);
移出事件处理:
oDiv.detachEvent(" onclick ",fOne);
注意参数变化。

相关文章

  • JS——事件流与事件处理程序

    本文对事件流和事件处理程序进行了简单整理,主要用于理清思路,不做详细概念解释。供大家复习与记忆使用。 1.事件流:...

  • [js]事件流与事件处理程序

    事件流 事件是文档或在浏览器窗口发生的特定的交互瞬间。js和html之间的交互都是通过事件触发的。事件流概述当浏览...

  • JavaScript-高级篇之事件

    什么是事件 掌握事件流 掌握DOM事件流与IE事件处理程序 掌握跨浏览器的事件处理程序 掌握event对象的常用属...

  • JS 事件

    目录 事件流 事件处理程序HTML事件处理程序DOM0级事件处理程序DOM2级事件处理程序IE事件处理程序跨浏览器...

  • 事件处理程序

    HTML事件处理程序 HTML程序和JS无法分离 DOM0级事件处理程序 DOM2级事件处理程序 DOM2级事件定...

  • JavaScript的事件机制详解

    【js事件详解】js事件封装函数,js跨浏览器事件处理机制 一、事件流 事件流描述的是从页面中接受事件的顺序。IE...

  • js中的事件

    简单总结一下js中的事件 事件处理程序 事件委托 各种各样的事件总结 事件中的this指向 事件处理程序 直接在D...

  • 事件流and事件处理程序

    事件流 什么是事件流 事件流描述得是从页面中接收事件的顺序 IE的事件流是事件冒泡流 Netscape Commu...

  • DOM事件探秘(一)

    DOM事件学习,事件流、事件处理程序和事件对象 1.事件流 从页面中接收事件的顺序 IE:事件冒泡流即事件最开始由...

  • 13 事件

    本章内容 理解事件流 使用事件处理程序 不同的事件类型 JavaScript 与 HTML 之间的交互是通过事件实...

网友评论

      本文标题:[js]事件流与事件处理程序

      本文链接:https://www.haomeiwen.com/subject/ghwkcttx.html