在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容。
复制代码 代码如下:
function stopPro(evt){
var e = evt || window.event
//returnValue如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,
//可以取消发生事件的源元素的默认动作。
//window.event?e.returnValue = false:e.preventDefault()
window.event?e.cancelBubble=true:e.stopPropagation()
}
js阻止默认事件的方式有两种:
使用e.preventDefault()方法,例子如下
/**
* 1.阻止元素的默认事件,但是不会阻止事件冒泡
*/
var link = document.getElementsByTagName('a')[0]
link.addEventListener('click',function(e){
e.preventDefault()
})
2.如果是在jquery中,可以使用return false,例子如下:
/**
* 2.阻止元素的事件冒泡
* Jquery和原生的Js在这点上有些不同,
* 原生的Js要通过e.stopPropagation()方法阻止事件冒泡
* 而Jquery则可以直接return false来阻止事件冒泡
* e.stopPropagation()方法不会阻止元素的默认行为,但是
* return false会阻止元素的默认行为。
*/
var btn = document.getElementById('btn')
btn.addEventListener('click',function(e){
return false
})