vue 实现选项卡多选功能,点击选中,再点击取消选中,选中显示高亮

本次做的这个选项卡的数据是一个对象,平常的都是数组,话不多说上代码

html部分

<div class="tab1">
     <div id="box1" v-for="(item,key, index) in obj1" :key="index" @click="selected_1(key)" 
     :class="{ 'active':active_tab1.indexOf(key)>-1}">{{ item }}</div>
</div>

js部分

data中需要定义的数据

// 员工状态选项卡数据
    obj1: {},
// 员工状态控制选中高亮
    active_tab1: [],
selected_1(key) {
      let arrIndex = this.active_tab1.indexOf(key);
      if(arrIndex>-1){   // 已选中,点击取消
          this.active_tab1.splice(arrIndex,1);
      }else{  // 未选中,点击选中
         this.active_tab1.push(key);
      }
    },

ok,这样就实现的基本功能

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 和 iView 中,可以通过设置 `highlight-row` 属性来实现 Table 表格的行高亮效果。而点击高亮、再次点击取消高亮的效果,则需要通过自定义 `highlight` 方法来实现。 1. 在 Table 组件上添加 `highlight-row` 属性,指定高亮行的样式名: ```html <Table :data="tableData" highlight-row class-name="table-highlight"> <Table-column prop="name" label="姓名"></Table-column> <Table-column prop="age" label="年龄"></Table-column> </Table> ``` 2. 给 Table 组件绑定 `highlight` 事件,实现点击高亮、再次点击取消高亮的效果: ```html <Table :data="tableData" highlight-row class-name="table-highlight" @highlight="handleHighlight"> <Table-column prop="name" label="姓名"></Table-column> <Table-column prop="age" label="年龄"></Table-column> </Table> ``` ```javascript export default { data() { return { tableData: [ { name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }, { name: 'Mike', age: 22 } ], highlightedRow: null }; }, methods: { handleHighlight(row, event) { if (this.highlightedRow === row) { this.highlightedRow = null; event.target.classList.remove('table-highlight'); } else { if (this.highlightedRow) { this.highlightedRow.$el.classList.remove('table-highlight'); } this.highlightedRow = row; event.target.classList.add('table-highlight'); } } } }; ``` 以上代码中,我们通过在 data 中定义 `highlightedRow` 变量来保存当前高亮的行,然后在 `handleHighlight` 方法中根据点击的行和当前高亮的行来判断是否需要取消高亮。如果当前高亮的行和点击的行相同,则取消高亮;否则,先取消当前高亮的行的高亮样式,再为点击的行添加高亮样式,并更新 `highlightedRow` 变量。注意,在添加和取消高亮样式时,需要通过 `event.target` 来获取当前点击的元素,并调用 `classList` 属性来添加或删除样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值