JavaScript中注册时间处理程序的方式

基本的方式有两种:
一、第一种方式,出现在Web初期,给时间目标对象或文档元素设置属性
1.设置JavaScript对象属性为事件处理程序。
示例:
这里写图片描述
缺点,这种设计都是围绕着假设每个事件目标对于每种事件类型将最多只有一个处理程序。
如果想编写能够在任意文档中都能使用的脚本库代码,更好的方法是使用一种不修改或覆盖任何已有注册处理程序的技术(如addEventListener())。

2.设置HTML标签属性为事件处理程序。
示例:
这里写图片描述
缺点,客户端编程的通用风格是保持HTML内容和JavaScript行为分离,遵循这条规则的程序员应禁止(或至少避免)使用HTML事件处理程序属性,因为这些属性直接混合了JavaScript和HTML。

二、第二种方式,更新并且更通用,是将事件处理程序传递给对象或元素的一个方法
1.addEventListener()。
示例:
这里写图片描述
2.attachEvent()
IE9之前的IE不支持addEventListener()。IE5及以后版本定义了类似的方法attachEvent()。工作原理与addEventListener()类似。

参考文献:《JavaScript权威指南》第十七章P451——454。

posted @ 2016-07-18 14:42  huahai  阅读(160)  评论(0编辑  收藏  举报