Element Plus 在 popover 弹出框中嵌入 select 选择器,选中选项后弹出框被关闭
这个问题通常是因为在 Element Plus 的 Popover 组件中使用了 Select 组件,并且 Select 组件的选项变化触发了 Popover 的关闭行为。
要解决这个问题,可以通过以下方法之一:
- 使用
popper-class
属性自定义 Popover 的类名,然后在 CSS 中设置这个类名的样式,使其在选项变化后不会被关闭。 - 使用
trigger
属性,将其设置为click
,这样只有在点击时才会关闭弹出框。 - 使用
popper-append-to-body
属性,将 Select 组件的该属性设置为false
,这样 Popover 就会控制 Select 组件的定位,而不是由 Body 控制。
以下是一个示例代码,展示如何使用 popper-class
来解决这个问题:
<template>
<el-popover
ref="popover"
placement="top"
width="200"
trigger="hover"
content="这是一段内容,这是一段内容,这是一段内容"
popper-class="custom-popover"
>
<template #reference>
<el-button>悬停触发</el-button>
</template>
<el-select v-model="selected" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-popover>
</template>
<script>
export default {
data() {
return {
selected: '',
options: [{ value: '1', label: '选项1' }, { value: '2', label: '选项2' }],
};
},
};
</script>
<style>
/* 确保选择后弹出框不关闭 */
.custom-popover .el-select-dropdown {
position: static !important;
}
</style>
在这个示例中,我们使用了自定义的 popper-class
来为 Popover 添加一个自定义的类名。然后在 CSS 中,我们为含有 .el-select-dropdown
的 Popover 类设置了 position: static
,这样即使 Select 下拉菜单被打开,Popover 也不会关闭。
评论已关闭