阻止默认:stopPropagation();
方法阻止事件在 DOM 中继续传播,防止再触发定义在别的节点上的监听函数,但是不包括在当前节点上其他的事件监听函数。
function stopEvent(e) {
e.stopPropagation();
}
el.addEventListener('click', stopEvent, false);
上面代码中,click事件将不会进一步冒泡到el节点的父节点。
阻止默认:preventDefault();
方法取消浏览器对当前事件的默认行为
<input type="checkbox" id="my-checkbox" />
var cb = document.getElementById('my-checkbox');
cb.addEventListener(
'click',
function (e){ e.preventDefault(); },
false
);
这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;
比如点击链接后,浏览器默认会跳转到另一个页面,使用这个方法以后,就不会跳转了;
该方法生效的前提是,事件对象的cancelable属性为true,如果为false,调用该方法没有任何效果。