我記得用原生js是document.body.onclick = function(){} 用vue在根div加了一個點擊事件 試了一下也能消失 但是不知道這種方法正規(guī)嗎?不知道還有其他的辦法嗎<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條經(jīng)驗 獲得超5個贊
建議放到組件里面,比較方便代碼復用。
beforeMount() { this._close = e => { // 如果點擊發(fā)生在當前組件內(nèi)部,則不處理 if (this.$el.contains(e.target)) { return; } this.$emit('hide'); }; document.body.addEventListener('click', this._close); }, beforeDestroy() { document.body.removeEventListener('click', this._close); }
添加回答
舉報
0/150
提交
取消