JavaScript阻止冒泡和阻止浏览器默认行为
2018-07-09 本文已影响0人
Joah_l
事件兼容
function fn (e) {
var e = e ? e : window.event;
}
js 停止冒泡
在 老的 ie 中不支持 stopPropatation 方法来阻止冒泡的方式, 它自带的方式是 cancelBubble 属性来阻止冒泡
function fn (e) {
window.event ? window.event.cancelBubble = true : e.stopPropagation();
}
stopPropagation 方法作用是阻止目标元素的冒泡事件, 但是不会阻止默认行为,
什么是冒泡事件:
如在一个按钮上绑定一个 click 事件, 那么这个click 事件会依次在它的父元素上被触发, stopPropagation() 就是阻止目标元素冒泡到父元素上
阻止默认行为:
chrome 等浏览器使用的方式是 preventDefault() 方法, 在老的 IE 中使用的是 e.returnValue = false;
preventDefault 它是事件对象的一个方法, 作用是取消一个目标元素的默认行为,如果元素本身没有默认行为,则会调用无效;
什么事元素的默认行为呢?
如 a 标签的默认跳转页面
input 的 submit 事件, submit 会默认提交表单
事件注意点:
event 代表事件的状态, 例如触发event 对象的元素,鼠标,的位置及状态,按下的键等等;
event 对象只在事件发生的过程中才有效。
参考原文: http://caibaojian.com/javascript-stoppropagation-preventdefault.html