HTML事件属性分为以下几类:
一、全局事件属性:HTML4的新特性之一是可以使HTML事件触发浏览器行为。比方说当用户点击某个HTML元素时启动一段JavaScript
二、窗口事件属性(Window Event Attributes):由窗口触发该事件,比较常用的有:onblur(当窗口失去焦点时运行脚本),onfocus(当窗口获得焦点时运行脚本),onhaschange(当文档改变时运行脚本)。
三、表单事件(Form Events):onblur(当元素失去焦点时运行脚本),onchange(当元素改变时运行脚本),onfocus(当元素获得焦点时运行脚本),oninput(当元素获得用户输入时运行脚本),onsubmit(当提交表单时运行脚本)
四、键盘事件(Keyboard Events):onkeydown(当按下按键时运行脚本),onkeypress(当按下并松开按键时运行脚本),onkeyup(当松开按键时运行脚本)
注意:三个事件按照键盘按下和抬起,相应的顺序是:onkeydown,onkeypress,onkeyup(如果键盘一直按着,onkeypress将一直执行)。
五、鼠标事件(Mouse Events):onclick(当单击鼠标时运行脚本),ondbclick(当双击鼠标时运行脚本),onmousedown(当按下鼠标按钮时运行脚本),onmousemove(当鼠标指针移动时运行脚本),onmouseout(当鼠标指针移出元素时运行脚本),onmouseup(当松开鼠标按钮时运行脚本),onscroll(当滚动元素的滚动条时运行脚本)
JS事件的冒泡和捕获:
(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。
IE 5.5: div -> body -> document
IE 6.0: div -> body -> html -> document
Mozilla 1.0: div -> body -> html -> document -> window
(2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定)。
(3)DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束。
DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。