【发布时间】:2021-06-11 04:57:53
【问题描述】:
我想在一个组件中使用一个变量来显示或不显示多个下拉菜单,并点击远离它们的 div 以关闭它们:
<div class="dropdown">
<button @click.prevent="isOpen = !isOpen"></button>
<div v-show="isOpen">Content</div>
</div>
// second dropdown in same component
<div class="dropdown">
<button @click.prevent="isOpen = !isOpen"></button>
<div v-show="isOpen">Content</div>
</div>
data() {
return {
isOpen: false
}
},
watch: {
isOpen(isOpen) {
if(isOpen) {
document.addEventListener('click', this.closeIfClickedOutside)
}
}
},
methods: {
closeIfClickedOutside(event){
if(! event.target.closest('.dropdown')){
this.isOpen = false;
}
}
}
但是现在当我单击一个下拉菜单时,它会同时显示它们。我对 vue 有点陌生,找不到解决这个问题的方法
【问题讨论】:
标签: javascript vue.js