Lecture 10 DOM Events(C)讲义.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * Web 2.0 Programming – DOM Events * / 23 * South China University of Technology Web Programming School of Computer Science and Engineering, South China University of Technology 第10讲 DOM事件 概要 观察者模式 DOM 2 事件流 事件处理 事件驱动编程 事件驱动编程: 编写由用户事件驱动的程序 观察者模式 事件使得对象有多个观察者队列 Event 观察者模式 观察者模式 是基于事件驱动编程 我们如何把观察者模式运用到复杂的DOM树上呢? 概要 观察者模式 DOM 2 事件流 事件处理 每个事件都有一个目标, 这个目标可以经由事件取得 element.onclick = handler(e); function handler(e){ if(!e) var e = window.event; // e refers to the event // see detail of event var original = e.eventTarget; } 每个事件都从浏览器开始, 传递到DOM DOM通过3个阶段传播这事件: 捕捉阶段, 目标阶段, 冒泡阶段(一些事件没有冒泡阶段, 例如读取一个文件元素的事件.) 注册一个捕捉阶段句柄: (IE 不能这样做) element.addEventListener(click,handler,true); 事件流 事件流 停止一个事件的传播 在一个事件句柄中抛出异常 在一个句柄中调用 event.stopProgagation(); 取消事件 取消默认的动作(例如当按下一个超链接导向一个新页面的时候): event.preventDefault(); 注册事件句柄 行内: a href=somewhere.html onClick=doSomething() 传统的: element.onclick = doSomething; DOM 2: element.addEventListener(click, doSomething, false); IE: (邪恶!) element.attachEvent(onclick, doSomething); Prototype: (完美 ?) Event.observe(target, click, doSomething); document.observe(dom:loaded, doSomething); 更多的细节 概要 观察者模式 DOM 2 事件流 事件处理 关键字 this 所有的JavaScript代码实际上是在一个对象上运行的 默认地, 代码运行在全局 window 对象中 所有你所声明的全局变量和函数都会成为 window 的一部分 this 关键字指向当前对象 事件句柄运行于它所注册的元素域里, 因此它可以使用 this 去访问这个元素的DOM节点,,那就是说: 在这句柄中, 那一个元素成为 this 指向的对象(而不是 window对象) DOM 2 事件类型 UI 事件类型: DOMFocusIn, DOMFocusOut, DOMActivate 鼠标事件类型: click, mousedown, mouseup, mouseover, mousemove, mouseout 键盘事件类型: (不在DOM 2中, 但会出现在DOM 3里) 突发事件: DOMSubtreeModified, DOMNodeInserted, … HTML 事件类型: load, unload, abort, error, select, change, submit, reset, focus, blur, resize, scroll 更多的细节 常用的事件类型 问题: 事件是非常棘手的, 而且有跨浏览器的兼容性问题: 模糊的W3C事件规范; IE不遵守网页规范; 等等. 解决方案: Prototype 包含很多与事件相关的特性和修复 abort blur change click dblclick error keydown keypress keyup load mousedown mousemove mouseover mouseup reset resize select submit focus mouseout unload 用Prototype附加事件句柄 要使用Prototype的事件特性, 你必须使用DOM

文档评论(0)

441113422 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档