为了账号安全,请及时绑定邮箱和手机立即绑定

vue点击页面任意位置让子组件消失

vue点击页面任意位置让子组件消失

慕沐林林 2018-10-23 15:04:31
我记得用原生js是document.body.onclick = function(){} 用vue在根div加了一个点击事件 试了一下也能消失 但是不知道这种方法正规吗?不知道还有其他的办法吗<template>  <div @click="none">       <div id="drop-down">         <Dropdown v-if="dd"></Dropdown>       </div>  </div> </template> export default {   name: 'Blog',   data () {    return {       dd: true     }   },   methods: {     none () {      this.dd = false     }   },
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

建议放到组件里面,比较方便代码复用。

beforeMount() {  this._close = e => {    // 如果点击发生在当前组件内部,则不处理
    if (this.$el.contains(e.target)) {      return;
    }    this.$emit('hide');
  };  
  document.body.addEventListener('click', this._close);
},
beforeDestroy() {  document.body.removeEventListener('click', this._close);  
}


查看完整回答
1 反对 回复 2018-10-23
  • 1 回答
  • 0 关注
  • 2327 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信