一个对象没有定义此事件或者事件返回结果为true,那么这个事件会向该对象的父级对象传播,一直到该对象的最顶层父级对象,都将执行该事件:
如下,去掉.stop会执行所有的onclick事件:
<div onclick="alert('我是最外层');">
<div onclick="alert('我是中间层');">
<!-- .stop--阻止单击事件冒泡 -->
<button id="myId" @click.stop="say('what')">say what</button>
</div>
</div>
new Vue({
el:'#app',
methods:{
say:function(msg){
alert(msg);
}
}
});
.stop原理:
$(function() {
$("#myId").click(function(event) {
event.stopPropagation();
});
});
另外:
event.preventDefault();-----不阻止事件冒泡,但是阻止默认行为,比如:
a标签加上超链接,再加上事件,设置.preventDefault(),不会阻止事件冒泡,但是会阻止打开超链接