Вот образец выпадающего списка, который работает правильно.
<Dropdown>
<div
type = "button"
aria-haspopup = "true"
aria-expanded = "false"
>
Show Dropdown
</div>
<template #popover>
<button
@click = "submit"
>
Click me
</button>
</template>
</Dropdown>
<script>
method:{
submit() {
// How make Dropdown close
}
}
</script>
Мне нужно закрыть раскрывающийся список после нажатия кнопки.





showDropdown в данныхv-show = "showDropdown" на том, что вы хотите скрыть@click = "showDropdown = !showDropdown" в раскрывающемся заголовке, чтобы переключить раскрывающийся списокshowDropdown = false при отправке<template>
<Dropdown>
<div
type = "button"
aria-haspopup = "true"
aria-expanded = "false"
@click = "showDropdown = !showDropdown"
>
Show Dropdown
</div>
<div v-show = "showDropdown">
<button
@click = "submit"
>
Click me
</button>
</div>
</Dropdown>
</template>
<script>
import { defineComponent } from "vue";
export default defineComponent({
data(){
return {
showDropdown: false
}
},
methods: {
submit() {
this.showDropdown = false;
// do more
}
}
});
</script>
Если вам нужен шаблон, вы можете использовать v-if вместо v-show.
@AtousaDarabiЗачем вам нужен шаблон?
@AtousaDarabi, если вам нужен шаблон, вы можете использовать v-if вместо v-show
вы добавили v-show в div, а не в шаблон. Он не работает с шаблоном.