【发布时间】:2021-12-28 15:12:46
【问题描述】:
所以我的问题是每当我转到下一页或做某事时,它都会保持打开状态。但是当我转到另一个页面时,我希望它关闭。为此,我的组件在这里:
<template>
<div class="custom-select" :tabindex="tabindex" @blur="open = false">
<div class="selected" :class="{ open: open }" @click="open = !open">
{{ selected.name }}
</div>
<div class="items" :class="{ selectHide: !open }">
<div v-if="defaultValue != ''">{{ defaultValue }}</div>
<div v-for="(option, i) of options" :key="i"
@click=" selected = option; open = false; $emit('input', option);">
{{ option.name }}
</div>
</div>
</div>
</template>
<script>
export default {
props: {
options: {
type: Array,
required: true,
},
defaultValue: {
type: String,
required: false,
default: "Choose an option",
},
tabindex: {
type: Number,
required: false,
default: 0,
},
},
data() {
return {
open: false,
selected: this.setDefaultValue(),
};
},
mounted() {
this.$emit("input", this.selected);
},
methods: {
setDefaultValue() {
if (this.defaultValue == '' && this.options.length > 0) {
return this.options[0];
}
return {name: this.defaultValue};
}
}
};
</script>
我愿意接受任何形式的解决方案来解决这个问题。
【问题讨论】:
-
你好@magic bean,你能分享
open和selectHide类的css代码吗?你是如何切换到另一个页面的? Vue路由器?此外,jsfiddle 中的演示或类似的东西有助于更好地理解上下文。
标签: javascript css vue.js drop-down-menu dropdown