首先可以给 document
对象绑定 click
事件。
然后由于事件冒泡机制,你单击文档的任意地方(包括绿色区域)都会触发 click
事件。
先在事件里写上隐藏绿色区域的代码
$(document).on('click',function(e){
//点击触发的事件
});
然后,再给某区域(例如aaa)绑定click
事件,这时候阻止事件冒泡,这样一来,点击该区域的话,是不会触发事件的。
$('#aaa').on('click',function(e){
e.stopPropagation();
});
参考 https://segmentfault.com/q/1010000005603412
应用到vue中,在大的组件上绑定click事件
<div id="panel-wrap" @click="handlePanelClick">
<block
v-for="item in block_ids"
:key="item"
</div>
</div>
在不希望触发事件的子组件中阻止冒泡
<div class='block_default'>
<!-- ... -->
</div>
mounted() {
$('.block_default').on('click',function(e){
e.stopPropagation();
});
}