关于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;
}