el-menu不想保留选中效果
时间: 2023-08-06 11:06:58 浏览: 98
如果你不想保留 el-menu 组件的选中效果,你可以设置 unique-opened 属性为 true,这样每次只有一个子菜单可以展开,并且点击其他菜单项时当前菜单项会自动关闭,不会保留选中状态。例如:
```
<el-menu :default-active="$route.path" unique-opened>
<el-menu-item index="/home">首页</el-menu-item>
<el-submenu index="1">
<template slot="title">菜单1</template>
<el-menu-item index="1-1">子菜单1-1</el-menu-item>
<el-menu-item index="1-2">子菜单1-2</el-menu-item>
</el-submenu>
<el-submenu index="2">
<template slot="title">菜单2</template>
<el-menu-item index="2-1">子菜单2-1</el-menu-item>
<el-menu-item index="2-2">子菜单2-2</el-menu-item>
</el-submenu>
</el-menu>
```
这个例子中,我们把 unique-opened 属性设置为 true,这样每次只有一个子菜单可以展开,点击其他菜单项时当前菜单项会自动关闭,不会保留选中状态。
希望这个回答能够帮到你!
相关问题
element plus el-menu 选中 源码activeIndex不修改
如果您选择了 `el-menu` 的某个菜单项,但是 `activeIndex` 没有改变,可能是因为您没有正确地设置 `router` 或 `index` 属性。
如果您使用 `router` 属性来控制 `el-menu` 的选中状态,则需要确保您在路由配置中设置了相应的路由信息,并且路由信息中设置了与菜单项相对应的 `path` 属性。除此之外,您还需要在 `el-menu` 上设置 `default-active` 属性来指定默认选中的菜单项。
如果您使用 `index` 属性来控制 `el-menu` 的选中状态,则需要确保您为每个菜单项设置了唯一的 `index` 值。此外,您还需要在 `el-menu` 上设置 `default-active` 属性来指定默认选中的菜单项。
以下是一个使用 `router` 属性的示例:
```html
<el-menu router :default-active="$route.path">
<el-menu-item index="/home">首页</el-menu-item>
<el-menu-item index="/about">关于我们</el-menu-item>
<el-menu-item index="/contact">联系我们</el-menu-item>
</el-menu>
```
在上面的示例中,`$route.path` 表示当前路由的路径,因此当用户访问 `/home` 路由时,`el-menu` 的选中状态会自动切换到 `首页` 菜单项。
如果您想要使用 `index` 属性来控制 `el-menu` 的选中状态,则可以使用以下示例:
```html
<el-menu :default-active="activeIndex">
<el-menu-item index="1">菜单项一</el-menu-item>
<el-menu-item index="2">菜单项二</el-menu-item>
<el-menu-item index="3">菜单项三</el-menu-item>
</el-menu>
```
在上面的示例中,`activeIndex` 是一个 Vue 实例中的数据属性,用于保存当前选中的菜单项的 `index` 值。当用户选择某个菜单项时,您需要在 `el-menu` 上监听 `select` 事件,并将选中的菜单项的 `index` 值赋值给 `activeIndex`。
```javascript
export default {
data() {
return {
activeIndex: '1'
};
},
methods: {
handleSelect(index) {
this.activeIndex = index;
}
}
};
```
在上面的代码中,`handleSelect` 方法是 `el-menu` 上的 `select` 事件的回调函数,它会在用户选择某个菜单项时被调用,将选中的菜单项的 `index` 值赋值给 `activeIndex`。
<div class="zs-box-header"> <el-dropdown style="height: 26px; width: 92px; outline: none;"> <span class="el-dropdown-link" style="margin: auto"> {{ selected }} <el-icon class="el-icon--right"> <arrow-down /> </el-icon> </span> <template #dropdown> <el-dropdown-menu> <el-dropdown-item v-for="(item, index) in options" :key="index" :value="item" @click.native="selectOption(item)"> {{ item }} </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> <div style="padding: 0px;"> <el-config-provider :locale="zhCn"> <el-date-picker v-model="NowTimes" type="month" style="width:120px;" :clearable="false" format="YYYY-MM" value-format="YYYY-MM" @change="PickDays()" placeholder="月份"/> </el-config-provider> </div> </div>下拉框在聚焦(选中)时会有黄框,我想把他去掉,该怎么改代码?
您可以在样式表中添加以下 CSS 代码来去掉下拉框的黄色聚焦框:
```
.el-dropdown:focus {
border-color: transparent;
box-shadow: none;
outline: none;
}
```
这样聚焦时的黄框就会被去掉了。如果不希望所有下拉框都去掉黄色聚焦框,可以在该下拉框的样式中添加该代码,如下所示:
```
.el-dropdown.your-custom-class:focus {
border-color: transparent;
box-shadow: none;
outline: none;
}
```
将 `your-custom-class` 替换为你为该下拉框定义的自定义 class 名称。
阅读全文