需求
项目需要对 el-tabs 的导航栏做鼠标监听事件,但官网仅有如下点击事件。所以另辟蹊径,对 class="el-tabs__nav-scroll" 做监听。
示例
<template><div><el-tabs class="my-tabs" v-model="activeName" type="card" ><el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane><el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane><el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane><el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane></el-tabs></div>
</template>
<script>
export default {data() {return {activeName: 'first'};},methods: {initTabListen() {// 注意这里特意加上自定义别名,以免获取其它 tabslet tabsObj = document.getElementsByClassName('my-tabs')[0];// tab 导航条对象let nav = tabsObj.getElementsByClassName('el-tabs__nav-scroll')[0]// 鼠标移上nav.onmouseover = () => {console.log('onmouse over');}// 鼠标移出nav.onmouseleave = () => {console.log('onmouse leave');}}},mounted() {this.initTabListen();}
};
</script>
说明
特别注意:代码第 3 和 21 行指定自定义 class="my-tabs" 避免获取全部 tabs。