事件流模型包括冒泡型事件流和捕获型事件流,前者从下到上一级一级的触发,后者从上到下一级级的触发。但是IE浏览器不支持捕获型事件流,所以大部分还是冒泡型事件流。
1.传统的 JavaScript 事件
(1)鼠标事件
onclick(单击) ondblclick(双击) onmousedown(按下鼠标左键) onmouseup(释放鼠标)
onmouseover(光标移动到某对象上) onmousemove(鼠标移动) onmouseout(光标离开某对象)
(2)键盘事件
onkeypress(键被按下以后) onkeydown(键被按下时) onkeyup(释放键)
(3)页面事件
onerror(出现错误) onload(页面内容完成) onresize(浏览器窗口大小改变)
onscroll(滚动条位置变化) onunload(当前页面将被改变时)
(4)表单事件
onblur(当前元素失去焦点) onchage(当前元素失去焦点且元素内容发生变化时)
onfocus(某个元素获得焦点时) onsubmit(一个表单被递交时)
2.jQuery 事件
(1)DOM 载入事件
$(document).ready(hanlder)
$().ready(handler)
$(handler)
(2)键盘事件
keypress(键被按下以后) keydown(键被按下时) keyup(释放键)
(3)鼠标事件
click(单击) dblclick(双击) mousedown(按下鼠标左键) mouseup(释放鼠标)
mouseover(光标移动到某对象上) mousemove(鼠标移动) mouseout(光标离开某对象)
(4)表单事件
blur(当前元素失去焦点) chage(当前元素失去焦点且元素内容发生变化时)
focus(某个元素获得焦点时) submit(一个表单被递交时) select(控件内容被选中时)
focusin(当前元素或其子元素获得焦点时) focusout(当前元素或其子元素失去焦点时)
其中,select 的实例如下,当选中第一个文本框中的文字时,第二个文本框自动显示选中的文本。
1 2 3 4Hello, jQuery! 5 6 18 19 20 21 22 23 24
效果如下:
另外,focusin 和 focusout 是jQuery 扩展的非常有用的事件。其实例如下:
1 2 3 462 63Hello, jQuery! 5 6 11 30 31 32 33用户注册
34
效果如下,当姓名输入框处于焦点状态时,其右侧的说明文本高亮显示:
(5)其他事件
load(当该元素加载就绪后触发) unload(当该元素卸载后触发)
error(当该元素发生错误时触发) resize(浏览器大小发生改变时触发) scroll(滚动条位置改变时触发)
jQuery 事件具有集合特性。对某个DOM元素绑定多个事件,在JavaScript中,只对最后一个事件进行绑定,而在jQeury中队所有事件进行绑定。