事件冒泡和事件默认行为

1.原生态事件

取得原生态的事件对象:

<button onclick="get(event)" type="button">tijiao</button>

阻止事件冒泡:

1         //如果提供了事件对象,则这是一个非IE浏览器  
2         if ( e && e.stopPropagation )
3                //因此它支持W3C的stopPropagation()方法
4                e.stopPropagation();
5         else
6             //否则,我们需要使用IE的方式来取消事件冒泡  
7             e.cancelBubble = true;

阻止默认行为:

1        //如果提供了事件对象,则这是一个非IE浏览器   
2         if ( e && e.preventDefault ){
3             //阻止默认浏览器动作(W3C)   
4           e.preventDefault();
5             
6         } else {
7           //IE中阻止函数器默认动作的方式   
8           e.returnValue = false;
9         }

 事件目标对象:

1         var target = null;
2         if(e && e.srcElement) {
3            //ie支持,ie10也包含属性target了。
4            target =  e.srcElement;
5         } else {
6             target = e.target;
7         }

 

 

2.Jquery事件

jquery对事件进行了封装,需要区分原生态event事件和jquery事件。jquery事件可以直接调用jquery api方法。

阻止默认行为:

 $("a").click(function(event) {
               event.preventDefault();
               $('<div/>').append('default ' + event.type + ' prevented').appendTo('#log');
             });

阻止事件冒泡:

1 $("p").click(function(event){
2     event.stopPropagation();    // do something
3   });  

 

posted @ 2014-08-14 15:50  chdyan  阅读(238)  评论(0)    收藏  举报