付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8-JavaScript事件模型创建可用的界面2015 Spring, xian本章内容JavaScript事件模型事件注册HTML特性,DOM属性和方法事件对象跨浏览器事件处理捕捉和冒泡对象自定义对象JavaScript事件模型事件模型DOM事件模型提供了一种方式,让用户与浏览器环境交互DOM事件模型由事件和附着在DOM对象上的事件监听器组成DOM ElementEvent ListenerClick meOn Click Listener事件类型DOM提供的常见事件类型集合,使用于99%的时间鼠标事件触摸事件表单事件键盘事件DOM事件DOM事件类型的全列表 也可以自定义事件类型常见事件类型
2、鼠标事件clickhovermouseupmousedownmouseovermouseout键盘事件keydownkeypresskeyup常见事件类型(2)UI事件loadabortselectresizechange焦点事件blurfocusfocusinfocusout常见事件类型(3)触摸事件touchstarttouchendtouchcanceltouchleavetouchmove事件注册事件处理开发者能够为特殊事件类型和DOM元素,注册一个事件处理器/监听器注册可以完成由:HTML特性使用DOM元素属性使用DOM事件处理器作为HTML特性通过给事件处理器属性进行简单赋值,可以
3、附着事件处理器值是纯JavaScript,且不总是函数Click MeClick Mefunction buttonClickFunction() console.log(You click the Button);使用HTML特性注册事件处理器 演示使用DOM元素属性使用标准的DOM事件在确定DOM元素上,并赋引用给函数可以是匿名Click mevar button = document.getElementById(click-button);button.onclick = function onButtonClick() console.log(你点击了按钮);使用DOM元素属性 演示
4、使用DOM附加事件处理器到DOM上的标准方法基本语法是:示例domElement.addEventListener(eventType, eventHandler, isCaptureEvent)var button = document.getElementById(click-button);button.addEventListener(click, function () console.log(You clicked me); , false);使用DOM注册事件处理器 演示事件对象得到事件数据事件对象事件处理器通过函数参数访问事件对象事件对象包含相关信息:事件类型事件目标当键盘事件
5、触发按下的键当鼠标事件触发按下的鼠标键鼠标在屏幕上的位置事件对象(2)事件对象可访问,作为仅有的函数处理器参数但是,IE并不能传递事件对象保存事件对象在window.event幸运的是可以简单修复function onButtonClick(event) console.log(event.target); console.log(event.type); console.log( + event.clientX + , + event.clientY + );button.addEventListener(click, onButtonClick, false); function onBu
6、ttonClick(event) if(!event) event = window.event; / Your code事件对象 演示跨浏览器事件处理器记住某个浏览器?跨浏览器兼容性addEventListener并不是任何地方都支持IE的老版本有自己的方法来附加事件处理器attachEvent(on + eventType, handler)使用特征检测:domElement.attachEvent(on + eventType, eventHander);/ Up to IE8if (document.attachEvent) domElement.attachEvent();/ IE
7、9, IE 10, Firefox, Chrome, Opera, Safarielse if (document.addEventListener) domElement.addEventListener(); / Reeeally old browserselse domElementon + eventType = handler; 跨浏览器事件处理可以在一个方法中转换创建有三个参数的函数目标元素事件类型事件处理器使用浏览器支持的方法跨浏览器事件处理器 演示捕捉和冒泡事件自顶向下和其他方法事件链当用户点击HTML元素时,事件也触发了该元素的所有父节点按钮仍然是目标,但点击事件触发了所有的
8、父节点事件在链中触发了所有元素 Click Me 点击触发触发触发触发事件链 演示两类事件链有两类事件链捕捉和冒泡冒泡处理器冒泡给父节点先执行的处理器是在目标上然后是其父节点,父节点的父节点,等捕捉处理器沿着事件链向下先执行的处理器在所有父节点上最后执行的处理器在目标上捕捉捕捉沿着事件链向下先执行的处理器在所有父节点的其中一个上HTMLBODYDIVBUTTON4213用户单击按钮冒泡冒泡沿着事件链向上先执行的处理器是在目标上HTMLBODYDIVBUTTON1234用户单击按钮捕捉和冒泡 演示自定义事件自定义事件创建自定义事件使用CustomEvent()构造器示例:创建自定义事件tripl
9、eclick得到body元素来附加自定义事件和addEventListenervar event = new CustomEvent(eventType); var event = new CustomEvent(tripleClick); var body = document.getElementsByTagName(body)0;body.addEventListener(tripleClick, function() alert(You click three times);, false);自定义事件(2)触发自定义事件使用:示例body.dispatchEvent(event);(function() var button = document.getElementById(btn-click); var counter = 0; button.addEventListener(click, func
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级数学下册 25.3 一次函数(第1课时)(原卷版)
- 智能养生壶2.0时代:从加热工具到健康管理中枢转型
- 药物临床试验质量管理规范(GCP)解读
- 2026年浙江单招电子商务运营策划题库含答案
- 十五五数据要素市场化:家庭服务机器人隐私保护与合规挑战
- 知乎盐选专栏创作与知识付费变现
- 数字对讲机:公共安全升级与产业数字化推动下的专业通信增长市场
- 2026年汽车4S店数字化转型与客户体验优化方案
- 2025年山东海阳职业学院单招综合素质考试模拟试卷【考试直接用】附答案详解
- 2024年河南固始职业学院高职单招职业适应性测试考试题库含答案详解【典型题】
- 2026年湖北武汉警务辅助人员招聘考试试卷-含答案解析
- 2026工会社会化工作者综合能力测试题库及答案
- (正式版)DB22∕T 2522-2016 《北方精养池塘鱼菜共生操作技术规程》
- 2026山东滨城区国有企业招聘工作人员13人笔试备考题库及答案详解
- 2026届重庆市八中中考语文模试卷含解析
- 中华财险四川分公司招聘笔试题库2026
- 2026年物业管理机器人应用创新报告
- 2026年高二数学寒假自学课(沪教版)专题02 数列难点总结(原卷版)
- 民宿入住须知与安全告知指导手册
- 电梯安全知识课件教学
- 2024年长春金融高等专科学校辅导员考试笔试真题汇编附答案
评论
0/150
提交评论