Ruby's Louvre

每天学习一点点算法

导航

事件冒泡

检测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事件的冒泡情况:

以下元素都能发生onchange事件:input控件,select,textarea。

IE6 IE8 FF3.6 opera10 chrome4 safari4
不冒泡 不冒泡 冒泡到HTML 冒泡到HTML 不冒泡 不冒泡

检测click事件的冒泡情况:

IE6 IE8 FF3.6 opera10 chrome4 safari4
冒泡到HTML 冒泡到HTML 冒泡到HTML 冒泡到HTML 冒泡到HTML 冒泡到HTML
      window.onload = function(){
        dom("select").change(function(e){
          alert(e.target.tagName);
        });
      }

检测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事件之后。

posted on 2009-12-27 16:18  司徒正美  阅读(3062)  评论(0编辑  收藏  举报