我阻止了div的默认行为,里面的a就不跳转了。
代码:
<div>
<a href="http://www.baidu.com">跳转百度</a>
</div>
<script>
var div = document.getElementsByTagName("div")[0];
div.onclick = function(event){
event.preventDefault();
};
</script>
问题:
a标签不跳转了,但是div本身没有任何默认行为啊,阻止div的默认行为,为何会阻止a的跳转。
猜想一:
a标签的页面跳转行为是由window来执行的,在事件传播的过程中,中止掉了这个传递过程。
猜想二:
但是用stoppropagation(),并不能阻止,说明事件传播和行为传播是两个线程?
div
上的click
事件a标签
也继承了,所以实际上a标签
上也绑定了click
事件。所以才不能触发表示事件的确是绑定在

div 标签上
:再看
a标签
上有没有事件?实际上
a标签本身并未定义事件
。再看下面这张图:注意图中的:
表示显示继承的事件。
然后结果是:
a标签
继承了div
的click
事件所以才会导致
a标签
不能跳转了。