在这一章我将对重要的变乱做一个概述,包罗一些风行的赏识器的兼容性题目。
在这里提出的变乱,当他们产生在一个确定的HTML元素上的时辰,他们的名字可以或许被大大都的赏识器所辨认。也就是说,赏识器会查找你为这个HTML元素所注册的变乱处理赏罚措施的剧本,并且会被当即执行。 一开始只有为数很少的一些变乱。这些变乱在险些全部的JavaScript赏识器都能运行,纵然是那些很是迂腐的。必要留意的是那些早期的变乱只能事变在链接可能表单上,偶然辰也能运行在整个窗口上,可是其他的大大都HTML元素不可。 期间变迁,许多新的变乱也给各人先容过了。第四代赏识器和更高级的赏识器应承变乱注册在任何的HTML元素上。 以是你根基上可以在任何元素上绑定任何变乱,固然在<P>上绑定一个keydown没有什么意义。 在这里查察完备的赏识器变乱兼容性列表。
界面变乱(Interface events) 界面变乱不是被用户举措触发的,而是被用户举动功效触发。 用户在任何元素上单击城市触发一个click时刻。当点击产生在有非凡寄义的元素上的时辰,特另外界面变乱就会被触发。 譬喻,当用户在一个链接上单击就触发了click时刻。单击这个链接一个新的页面就会被装载,以是这个非凡的click变乱导致了界面变乱unload的触发。 其他的界面变乱尚有resize,scroll和focus/blur。
鼠标变乱(mouse events) 从Netscape 2开始,全部的赏识器都留意到了这样两个究竟。当鼠标划入一个链接地区,那么mouseover变乱就触发了。当他点击了这个链接那么click变乱触发。不久之后mouseout也被添加了进去,他会在鼠标分开链接地区的时辰触发。因此传统的鼠标变乱三合会(Traditional Triad)创立了。 第三代的赏识器对付鼠标变乱举办了一些扩充。dbclick添加了进来,click变乱支解成了mousedown和mouseup:用户按下和弹起鼠标按键。最后跟踪鼠 标轨迹的mousemove也酿成了也许 在后头的章节会具体讲授鼠标变乱(mouse event)。
表单变乱(Form events) 表单可以或许辨认submit和reset变乱,submit在用户提交表单的时辰触发reset在重置表单的时辰触发。个中submit变乱是全部表单验证代码的焦点。当用户提交表单的时辰,就遍历一遍表单搜查是否有不正确的数据。假如发明白一个错误,遏制提交表单并向用户发出一个告诫。 表单还能在某一项获得可能失去核心的时辰辨认focus和blur变乱,尚有键盘变乱和click变乱。可以查察其他的兼容性列表。 一样平常环境下行使这些变乱的时辰要警惕。当用户分开表单中的某一项的时辰完全可以用onblur来验证数据,可是凡是这都很烦人。用户在忙着填表单的时辰不想望见任何弹出来的提醒。
W3C变乱(W3C events) 在W3C的DOM 2 变乱类型中 还界说了一些突发变乱(Mutation events)。这些变乱在文档的DOM布局产生变革的时辰触发。最常见的一个就是DOMSubtreeModified变乱,它会在DOM产生变革的时辰触发。 Mozilla将这个变乱配置为subtreemodified。Mozilla也不支持其他的我们没有提到的w3c变乱。
微软变乱(Microsoft events) 微软缔造了一大堆变乱。有一些长短常风趣的。 当用户在任何时辰单击鼠标右键的时辰就会触发comtextmenu变乱。这很是有效甚至滥用。Mozilla也支持这个变乱。 当导入XML文件的时辰,readystatechange变乱就像一些load变乱一样提供处事。当XML文档的readyState酿成4的时辰,文档就加载完毕了。(不要问我什么是readyState,他管用并且够用) 让人诧异的是在unload变乱产生之前尚有beforeunload变乱。他计划的目标是用来打消封锁页面,可是确没人在乎。 最后微软还发现了mouseenter和mouseleave变乱,这两个险些和mouseover合mouseout变乱一样。在鼠标变乱一章查察。 虽然以上变乱只被IE支持。
Mozilla变乱(Mozilla events) Mozilla,虽然也有一大堆本身的变乱。我还没有细心的研究。
变乱处理赏罚措施 全部的变乱无论何时触发城市被赏识器检测到。赏识器凡是也会执行默认的措施,就像当用户点击一个链接的时辰。可是偶然辰什么也不会产生。
变乱处理赏罚措施的重点在于你可以让其他工作产生。你可以在变乱产生的时辰让赏识器执行你的剧本。假如你这样写了那么无论何时只要变乱产生那么你的剧本就会执行。假如这些剧本在切合逻辑的基本上能很是的有效,那么你的用户也会很是的舒畅。
为了确保你的剧本在变乱触发的时辰可以或许执行,你必要对HTML元素简直定的举措举办变乱注册,就像下面这样:
<a href="somewhere.html" onClick="alert('I've been clicked!')">
这样剧本里的alert('I've been clicked!')就会在click变乱产生的时辰执行。这就注册了一个变乱处理赏罚措施。
假如你要继承进修,那么请看下一章。
原文地点:http://www.quirksmode.org/js/events_events.html
作者:北玉(tw:@rehawk) 文章出处:http://beiyu.cnblogs.com (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|