解决Element-UI 2.x垂直折叠导航在触摸屏设备的问题
问题描述
- Element-UI 2.x的垂直折叠导航,在触摸屏设备中,会在点击之后闪烁一次。

猜测
- 前置原因:折叠后的子导航触发方式为鼠标悬浮方式(hover),且不能更改为点击方式(click)
- 主要原因:触摸屏设备并没有鼠标悬浮等相关事件,对于浏览器的网页来说,"鼠标"依然在那里,从而导致子导航再次显示出来。
解决方案:
<!-- ... 其他代码 -->
<el-menu-item-group>
<span slot="title">分组一</span>
<el-menu-item index="1-1" @click="handleSubmenuSelection($event)">选项1</el-menu-item>
<el-menu-item index="1-2" @click="handleSubmenuSelection($event)">选项2</el-menu-item>
</el-menu-item-group>
<!-- ... 其他代码 -->
<script>
<!-- ... 其他代码 -->
handleSubmenuSelection(menu_item) {
console.log(menu_item);
// 判断父组件是否为空,并且父组件的组件标签为"el-menu-item-group"
if (menu_item.$parent && menu_item.$parent.$options._componentTag === "el-menu-item-group") {
// 手动调用鼠标离开事件处理器
menu_item.$parent.$parent.handleMouseleave(true);
}
},
<!-- ... 其他代码 -->
</script>
<!-- ... 其他代码 -->
结果

Comments | NOTHING