网络编程
位置:首页>> 网络编程>> JavaScript>> 有关JS中Event对象的几点总结

有关JS中Event对象的几点总结

作者:yemoo 来源:yemoo博客 发布时间:2009-03-06 12:36:00 

标签:event,对象,JavaScript,总结

JavaScript/Dom中有很多很零碎的东西,让人总是感觉理解的有些“朦胧”,因此,有时候还是应该总结一下,对于Event对象,前两天看了quirksmode上PPK的一些关于事件的文章后,感觉很多东西瞬间都明白了,简单总结一下:

  • 对一个存在默认事件的dom元素绑定一个相同的事件后(如a的href默认行为click转向),通过return false可以取消默认事件。尽管现在的浏览器支持preventDefault/returnValue等方式来取消,但return false是最简单且兼容各种浏览器的。

  • 对于在a元素上绑定了的mouseover事件中尝试修改window.status时,需要返回true以取消默认的事件(在状态栏显示连接地址),这是一个特例。

  • 通过return false并不能取消所有的事件,如unload。因为这类事件如果可以被取消则可能为用户带来很不好的体验。

  • 内联事件绑定(<a onclick="">link</a>)和通过事件属性绑定(a.onclick=function(){})是所有浏览器均支持的。

  • 在html中,因为标记不区分大小写,因此内联事件名也不区分大小写,你可以写成onclick或者OnClick等形式,但在XHTML中,必须是小些形式。此外,其它形式的事件绑定中事件名也必须为小写。

  • IE中,触发一个事件的方法为element.fireEvent('onclick');

  • w3c建议的事件触发顺序为先捕获后冒泡,这在非IE浏览器中可以根据addEventListeners的第三个参数来定义一个事件是在捕获期或者冒泡期触发,但在IE中只支持冒泡的顺序。

  • 在IE中,通过attachEvent绑定的事件,其回调函数中的this指向的是window对象而不是绑定的dom对象。而在w3c兼容的浏览器中通过addEventLisnters绑定的事件回调函数中的this都是指向所绑定事件的dom对象。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com