关于js 冒泡、阻止默认行为、事件的兼容性写法

一  冒泡的兼容性写法

  可以用event.stopPropagation();方法来阻止冒泡,但是在IE下不支持此方法,但可以利用其event.cancelBubble属性设置为true阻止。

  列如:

     if(event.stopPropagation){

     //ie不支持

           event.stopPropagation();

        }else{

     //ie支持

           event.cancelBubble = true;

   }

二  阻止默认行为的兼容性写法

1. w3C标准的阻止默认行为的方法是preventDefualt()

2. IE中阻止事件的默认行为的属性是returnValue,为:true不阻止,false:阻止事件的默认行为

 if (e.preventDefault) {

  //w3c  

     e.preventDefault();  

  } else{  

  //ie  

    e.returnValue = false;

  }  

如果我们未通过addEventListener()函数来绑定事件的话,若要禁止默认事件,可以用return false; 但如果要用addEventListener()或者attachEvent()来绑定,就要用preventDefault()方法或者设置事件对象的returnValue属性。

注意:如果在jQuery中return false;相当于同时调用了event.stopPropagation()和event.preventDefault(),事件的默认行为不会被执行,事件也不会冒泡向上传递。

三 事件的兼容写法:

function getEvent(event){   

//获取事件对象的兼容性写法

  return event || window.event;

 }

posted @ 2017-07-11 14:37  Y~forward  阅读(520)  评论(0)    收藏  举报