- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
JavaScript的事件处理
王红元coderwhy
目录
1认识事件处理
content
2事件冒泡捕获
3事件对象event
4EventTarget使用
5事件委托模式
6常见的事件
coderwhy认识事件(Event)
◼Web页面需要经常和用户之间进行交互,而交互的过程中我们可能想要捕捉这个交互的过程:
比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置;
浏览器需要搭建一条JavaScript代码和事件之间的桥梁;
当某个事件发生时,让JavaScript可以相应(执行某个函数),所以我们需要针对事件编写处理程序(handler);
◼如何进行事件监听呢?
事件监听方式一:在script中直接监听(很少使用);
事件监听方式二:DOM属性,通过元素的on来监听事件;
事件监听方式三:通过EventTarget中的addEventListener来监听;
coderwhy常见的事件列表
◼鼠标事件:
click——当鼠标点击一个元素时(触摸屏设备会在点击时生成)。
mouseover/mouseout——当鼠标指针移入/离开一个元素时。
mousedown/mouseup——当在元素上按下/释放鼠标按钮时。
mousemove——当鼠标移动时。
◼键盘事件:
keydown和keyup——当按下和松开一个按键时。
◼表单(form)元素事件:
submit——当访问者提交了一个form时。
focus——当访问者聚焦于一个元素时,例如聚焦于一个input。
◼Document事件:
DOMContentLoaded——当HTML的加载和处理均完成,DOM被完全构建完成时。
◼CSS事件:
transitionend——当一个CSS动画完成时。
coderwhy认识事件流
◼事实上对于事件有一个概念叫做事件流,为什么会产生事件流呢?
我们可以想到一个问题:当我们在浏览器上对着一个元素点击时,你点击的不仅仅是这个元素本身;
这是因为我们的HTML元素是存在父子元素叠加层级的;
比如一个span元素是放在div元素上的,div元素是放在body元素上的,body元素是放在html元素上的;
coderwhy事件冒泡和事件捕获
◼我们会发现默认情况下事件是从最内层的span向外依次传递的顺序,这个顺序我们称之为事件冒泡(EventBubble);
◼事实上,还有另外一种监听事件流的方式就是从外层到内层(body-span),这种称之为事件捕获(EventCapture);
◼为什么会产生两种不同的处理流呢?
这是因为早期浏览器开发时,不管是IE还是Netscape公司都发现了这个问题;
但是他们采用了完全相反的事件流来对事件进行了传递;
IE采用了事件冒泡的方式,Netscape采用了事件捕获的方式;
◼那么我们如何去监听事件捕获的过程呢?
coderwhy事件捕获和冒泡的过程
◼如果我们都监听,那么会按照如下顺序来执行:
◼捕获阶段(Capturingphase):
事件(从Window)向下走近元素。
◼目标阶段(Targetphase):
事件到达目标元素。
◼冒泡阶段(Bubblingphase):
事件从元素上开始冒泡。
◼事实上,我们可以通过event对象来获取当前的阶
文档评论(0)