一般的事件流中有两种:一是事件捕获 二是事件冒泡

事件冒泡的理解:何谓冒泡,当水开的时候,水珠不断地向上冒的过程。在JS中同样如此。在DOM中是一种树型的结构。

如:window

         document

                 html

                     body

                         span

例如span标签绑定了一个onclick事件.在没有阻止冒泡事件的时候,当span发生onclick事件时,body,html,document,window同样会触发onclick事件(前提是这个几个祖先标签绑定了onlick事件),否则是看不出效果。


事件捕获很少用到。


 阻止事件冒泡方法:

    在非IE下的方法是stopPropagation();

    在IE下的方法中:cancelBubble属性;当cancelBubbl=true的时候为阻止冒泡事件.

 解决兼容的方法是:

obj.οnclick=function(ev){

    e=ev || window.event;

    e.stopPropagation?e.stopPropagation():e.cancelBubble=true;

    或者

    if(e.stopPropagation){

    e.stopPropagation()

    }else{

    e.cancelBubble=true;

    }

};