vue中v-for循环出来的元素绑定的不同事件

本文介绍了一种在Vue中解决循环生成元素时点击事件绑定的问题。通过定义一个handler方法间接调用目标函数,避免了'handler.apply is not a function'错误,实现了全选、反选和重置等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   <div style="padding: 0 5px;" @click="handler(item.fun)" v-for="(item, index) in iconData" :key="index">
    <i class="iconfont  iconHover" :class="item.icon" :title="item.title"></i>
   </div>

 刚开始我在循环出来的元素中加@click="item.fun",出现了handler.apply is not a function的错误然后网上查了一下,可以通过一个方法间接调用来实现。

      iconData: [
        { icon: 'iconquanxuan', title: '全选', fun: 'checkAll' },
        { icon: 'iconfanxuan', title: '反选', fun: 'toggleAll' },
        { icon: 'iconzhongzhi', title: '重置', fun: 'cancleAll' }
      ]
    handler(fun) {
      this[fun]()
    },
    checkAll() {
      this.checkedList = [...this.Options]
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAllOff()
    },
    cancleAll() {
      this.checkedList = []
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAllOn()
    },
    toggleAll() {
      //反选
      this.checkedList = this.Options.filter(a => this.checkedList.indexOf(a) === -1)
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAll()
    },

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值