<a href="https:www.baidu.com"><p>hello</p></a>
var p = document.querySelector('p');
var a = document.querySelector('a');
p.addEventListener('click', function(e) {
e.stopPropagation();
},false)
a.addEventListener('click',function(e){
e.preventDefault();
},false)
按照代码:
p在a的内部,p的点击事件阻止了事件冒泡,那么a应该不会跳转;
退一万步,p就算没有阻止冒泡,a本身点击事件阻止了默认事件,应该不会跳转。
结果是:a跳转了!!!why???
-----------------------------------------------------------这里是7月31号补充的分界线------------------------------------------------------------------
之前提出这个问题太傻了,今天再看的时候突然想通了。
p的click事件处理器里面阻止了事件冒泡,那么a的click事件处理器就不会被触发,当然a的默认事件就不会被阻止
这样写,a标签点击时就不会跳转
<a href="https:www.baidu.com"><p>hello</p></a>
var a = document.querySelector('a');
a.addEventListener('click', function (e) {
console.log(e.eventPhrase)
e.preventDefault();
}, false)