js阻止默认事件,如a标签跳转和事件冒泡

禁止a标签点击跳转

<a href="http://baidu.com" onclick="return false">点我啊</a>

原理是当点击a标签时首先触发onclick函数,然后才执行href的跳转。但是在执行到return false的时候直接终止了执行,也就没有了链接的跳转。

目前疑问是 return false 和 return true 以及 return 的作用都是结束当前函数的执行并分别返回 false,true,undefined。但是如果把 a 标签 onclick 函数换成 return 或 return true 后还是会执行页面跳转的。

因此,初步推断当执行完 onclick 事件后会根据返回值进行下一步操作,比如如果是false就终止当前事件的继续执行。

当然还可以通过这样设置 href="javascript:void(0);"来防止超链接跳转。

阻止默认事件以及事件冒泡

禁止事件传输过程中的冒泡,IE和其它浏览器的方式不同

var evt = evt || window.event; // 获取event对象

if(evt.preventDefault){

  evt.preventDefault(); // 非IE浏览器

}else{

  evt.returnValue = false;// 在早期的IE版本中

}

event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true); // 阻止事件冒泡

猜你喜欢

转载自www.cnblogs.com/rxqlx/p/10338271.html