不兼容的事件冒泡
.on() 的中文 API:http://www.css88.com/jqapi-1.9/on/
jquery 1.9 升级指南:http://www.css88.com/archives/5086
转自:http://www.cnblogs.com/rubylouvre/archive/2009/12/27/1628347.html
关于事件冒泡各个浏览器的支持(这里指的是原生js,jquery 的.on() 可以支持chang等事件的。):
检测submit事件的冒泡情况:
IE6 | IE8 | FF3.6 | opera10 | chrome4 | safari4 |
---|---|---|---|---|---|
冒泡到FORM | 冒泡到FORM | 冒泡到HTML | 冒泡到HTML | 冒泡到HTML | 冒泡到HTML |
检测reset事件的冒泡情况:
IE6 | IE8 | FF3.6 | opera10 | chrome4 | safari4 |
---|---|---|---|---|---|
冒泡到FORM | 冒泡到FORM | 冒泡到HTML | 冒泡到HTML | 冒泡到FORM | 冒泡到FORM |
检测change事件的冒泡情况:
IE6 | IE8 | FF3.6 | opera10 | chrome4 | safari4 |
---|---|---|---|---|---|
不冒泡 | 不冒泡 | 冒泡到HTML | 冒泡到HTML | 不冒泡 | 不冒泡 |
检测select事件的冒泡情况(onselect 事件会在文本域(区)中的文本被选中时发生):
IE6 | IE8 | FF3.6 | opera10 | chrome4 | safari4 |
---|---|---|---|---|---|
不会冒泡 | 不会冒泡 | 冒泡到HTML | 冒泡到HTML | 不会冒泡 | 不会冒泡 |
对于focus,blur,change,submit,reset,select等不会冒泡的事件,在标准游览器中,我们可以设置addEventListener的最后一个参数为true轻松搞定。IE就有点麻烦了,要用focusin代替focus,focusout代替blur,selectstart代替select。change,submit与reset就复杂了,必须利用其他事件来模拟,还要判断事件源的类型,selectedIndex,keyCode等等,jQuery有插件用很复杂的方式来实现……
onselect事件发生在mouseup事件之后,而onselectstart 事件发生在mousedown并mousemove事件之后。
勤于总结 乐于分享