事件模型

冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点

捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反

DOM标准事件模型:DOM标准既支持冒泡型事件,也支持捕获型事件,可以说是两者的结合体,首先是捕获型,接着冒泡传递

事件对象

在IE浏览器中事件对象是window的一个属性,在DOM标准中,event必须作为唯一的参数传给事件处理函数

获得兼容的event 对象:

function(event){ //event 是作为DOM标准的参数传入处理函数event = event ?event : window.event;
}

在IE中,事件的对象包含在event的srcElement中,而在DOM标准中,对象包含在target属性中

获得兼容的event 对象指向的元素:

var target =event.srcElement ? event.srcElement : event.target ;

前提是,保证event对象已经正确的获取

事件监听器

IE下,注册的监听器逆序执行,即后面注册的先执行

element.attachEvent('onclick',observer);   //注册监听器
element.detachEvent('onclick',observer)   //移除监听器

第一个参数为事件名称,第二个为回调处理函数

DOM标准下:

element.addEventListener('click',observer,useCapture)
element.removeEventListener('click',observer,useCapture)

第一个参数为事件名称,没有“on”的前缀,第二个参数为回调处理函数,第三个参数说明回调函数是在捕获阶段调用还是冒泡阶段调用,默认true为捕获阶段

事件传递

兼容地取消浏览器的事件传递

function someHandler(event){event = event || window.event;if(event.stopPropagation)   //DOM标准event.stopPropagation();elseevent.cancelBubble = true;   //IE标准
}

取消事件传递后的默认处理

function someHandler(event){event = event || window.event;if(event.preventDefault)   //DOM标准event. preventDefault ();elseevent.returnValue = true;   //IE标准
}

转载于:https://www.cnblogs.com/duadu/p/6335914.html

javascript之事件模型相关推荐

  1. Javascript知识——事件

    O(∩_∩)O~~又是新的一周开始了,今天还是在继续学习Javascript知识,今天主要讲了事件的知识.现在就总结下吧. 事件 事件一般是用于浏览器和用户操作进行交互.最早是 IE 和 Netsca ...

  2. html流动模型,javascript的事件流模型都有什么?

    事件流:当你在页面触发一个点击事件后,页面上不仅仅有一个元素响应该事件而是多个元素响应同一个事件,因为元素是在容器中的.事件发生的顺序就是事件流,不同的浏览器对事件流的处理不同. JavaScript ...

  3. JavaScript 复习之 事件模型 和 Event对象

    事件模型 一.监听函数 js 有三种方法,可以为事件绑定监听函数 HTML 的 on- 属性 元素节点的事件属性,也可以指定监听函数 EventTarget.addEventListener() DO ...

  4. javascript中0级DOM和2级DOM事件模型浅析

    Javascript程序使用的是事件驱动的设计模式,为一个元素添加事件监听函数,当这个元素的相应事件被触发那么其添加的事件监听函数就被调用: <input type="button&q ...

  5. Javascript事件模型系列(一)事件及事件的三种模型

    一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加 ...

  6. JavaScript 事件模型 事件处理机制

    这篇文章对于了解Javascript的事件处理机制非常好,将它全文转载于此,以备不时之需. 什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们 ...

  7. 轻松学习JavaScript二十七:DOM编程学习之事件模型

    在介绍事件模型之前,我们先来看什么是事件和什么是event对象. 一事件介绍 JavaScript事件是由访问Web页面的用户引起的一系列操作,使我们有能力创建动态页面,事件是可以被 JavaScri ...

  8. 【前端学习】前端学习第十五天:JavaScript中的事件模型

    在各种浏览器中存在三种事件模型:原始事件模型.DOM事件模型和IE事件模型: 一.原始事件模型: 原始事件模型被所有浏览器支持: 在原始事件模型中.事件一旦发生就直接调用事件处理函数,事件不会向别的对 ...

  9. 12.在JavaScript中的事件模型如何理解?

    一.事件与事件流 javascript中的事件,可以理解就是在HTML文档或者浏览器中发生的一种交互操作,使得网页具备互动性, 常见的有加载事件.鼠标事件.自定义事件等 由于DOM是一个树结构,如果在 ...

  10. JavaScript中的事件传播(DOM2标准事件模型)

    在所有的现代浏览器当中--除了IE9之前的版本--都实现了DOM2标准事件模型,这个事件模型规定:每一个DOM元素所触发的事件都要经历三个阶段:一.捕获阶段:二.目标对象本身的事件处理程序调用阶段:三 ...

最新文章

  1. ubuntu14.04上搭建android开发环境
  2. AI一分钟|Uber撤裁100名无人车操作员;京东金融将融资130亿人民币
  3. SAP RETAIL 为门店维护多个存储地点
  4. 粒子群优化RBF神经网络源码程序
  5. ABAP常用字符串操作收集整理
  6. 深入到系统组件是否白盒测试_白盒测试
  7. python中可选参数的特征_sklearn特征选择方法及参数
  8. java 服务器读取客户端文件,java 服务器读取客户端文件
  9. Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
  10. linux谁使用内存,linux内存不知被谁用了
  11. react中的render-props模式
  12. 订婚和结婚有什么区别
  13. Lightroom Classic 教程,如何在 Lightroom Classic 中编辑照片?
  14. Oracle队列锁enq:TS,Temporary Segment (also TableSpace)
  15. 飞思卡尔芯片k66单片机溢出_飞思卡尔HCS12系列 Flash的加密解密解决方法
  16. 百度初级认证有用吗_赤峰BIM工程师认证
  17. VsCode模仿简单百度网页(html)
  18. 结对编程——自动生成数学试卷的系统(javaswing,mysql)by 陈松刘宇航
  19. percona mysql备份与恢复(一)
  20. hbuilderx代码自动补全_HBuilderX代码提示系统说明

热门文章

  1. Twitterrifi常用快捷键汇总
  2. [转]Angular引入第三方库
  3. 第二十章:异步和文件I/O.(九)
  4. 【Codeforces】868C. Qualification Rounds
  5. RabbitMQ之前的那些事
  6. Laravel Blade 模板用法
  7. 《Adobe After Effects CS5经典教程》——1.6 预览
  8. 教你下载BarTender 2016
  9. 如何写程序自动下载BBC Learning English的所有在线课程
  10. everything is nothing