JavaScript&jQuery交互式web前端开发6章事件

事件
脚本响应这些事件的方式通常是更新Web页面的内容(通过文档对象模型),从而使页面更具交互性。
不同的事件类型
1.UI事件:
JavaScript&jQuery交互式web前端开发6章事件
2.键盘事件
JavaScript&jQuery交互式web前端开发6章事件
3.鼠标事件
JavaScript&jQuery交互式web前端开发6章事件
4.焦点事件
JavaScript&jQuery交互式web前端开发6章事件
5.表单事件
JavaScript&jQuery交互式web前端开发6章事件
6.变动事件
JavaScript&jQuery交互式web前端开发6章事件
事件触发脚本
我们称之为事件触发了函数或脚本。
事件如何触发JS代码
JavaScript&jQuery交互式web前端开发6章事件
注意
1.UI事件是和浏览器窗口相关的(而不是在其中加载的页面),因此它和window对象而不是元素节点关联。∪I事件包括当请求的页面加载完成时,或当用户使用页面滚动条时,等等。你会在第272页学习到这些内容。
2.有些事件可以用于大部分元素节点,比如mouseover事件,当用户将鼠标移到任何一个元素上时都会触发该事件。另一些事件只适用于特定的元素节点类型,比如submit事件,只能用于form 元素。
将事件绑定到元素的3种方法
事件处理程序允许你在任意一个指定元素.上声明需要监听的事件。有三种类型的事件处理程序:
1.HTML事件处理程序
JavaScript&jQuery交互式web前端开发6章事件
JavaScript&jQuery交互式web前端开发6章事件
2.传统的DOM事件处理程序
传统的DOM事件处理程序在原始的DOM规范.中就引入了DOM“事件处理程序”的概念。它优于HTML的事件处理程序,因为你可以HTML中将JavaScript代码分离出来。这种方法一个强大的优势在于它适用于所有主流浏览器。其主要的劣势在于你只能在一个事件上附加一个函数。例如,表单的submit事件不能在触发一个方法来检查表单内容之后,再触发另一个方法来提交通过检查的表单数据。由于这种限制,如果你在同一个页面上使用多段脚本,并且它们响应同一个事件的话,其中一个、甚至所有这些脚本都无法正常工作。
注意
要想函数在事件发生之后运行,函数的调用不能加小括号,否则自动执行函数不需要触发执行;后面的小括号,因为小括号表示函数会在页面加载到这里时运行,而不是事件发生时运行。
JavaScript&jQuery交互式web前端开发6章事件
JavaScript&jQuery交互式web前端开发6章事件
当选择的DOM节点上发生事件时,如果调用一个命名函数的话,需要首先编写这个函数(也可以使用匿名函数)。
3.第2级DOM监听器
在更新的DOM规范(第2级DOM,发布于2000年)中,引入了事件监听器的概念。如今它是最受欢迎的处理事件的方法。除了语法非常不同之外,与传统的事件处理程序相比,新的事件监听器允许一个事件触发多个方法。因此,同一个页面中多个脚本之间发生冲突的情况就会减少了。这种方法不适用于IE8(以及更早的IE浏览器),不过可以在第258页看到一个变通方案。这种在浏览器之间DOM和事件支持情况的不一致性,带来了jQuery的繁荣(不过为了理解jQuery如何使用事件,你需要了解它们的工作机理)。
JavaScript&jQuery交互式web前端开发6章事件
1.IE8和更早版本的E浏览器不支持addEventl istener()方法,不过它们支持一个名叫attachEvent()的方法,你会在第258页看到它。
2.和传统的HTML及DOM事件处理程序不同,当指定需要监听的事件名称时,不需要在名称前面加上“on”这个前缀。、
3.如果需要移除事件监听器,可以使用名叫removeEventListener()的方法,它会从指定的元素上移除事件(其参数和添加事件监听器的方法相同)。
在事件处理程序和事件监听器中使用参数
JavaScript&jQuery交互式web前端开发6章事件
支持旧版本的事件监听
JavaScript&jQuery交互式web前端开发6章事件
事件流
JavaScript&jQuery交互式web前端开发6章事件
JavaScript&jQuery交互式web前端开发6章事件
事件对象
当事件发生时,事件对象会告诉你关于这个事件的信息,以及它发生在哪个元素.上。