vue中巧用事件委托

项目中遇到大量的button需要添加同一个@click事件,如果给每一个button都添加@click事件,这么多的监听从性能上来说是不太好的,所以后来改进了一下,我们使用js的事件委托机制,实现如下:

    <div class="rightBtn" @click="filterAnimal($event)">
      <div class="Icon right80" style="top:200px;">
        <span class='IconDuck' data-index="秋沙鸭"></span>
        <span class="IconTextEven">秋沙鸭</span>
      </div>
      <div class="Icon right50" style="top:265px;">
        <span class='IconSheep' data-index="盘羊"></span>
        <span class="IconTextOdd">盘羊</span>
      </div>
      <div class="Icon right80" style="top:330px;">
        <span class='IconLin' data-index="藏原羚"></span>
        <span class="IconTextEven">藏原羚</span>
      </div>
    ...
    </div>

<script> 
...
    filterAnimal(e){
      let dom = e.target;
      let index = dom.getAttribute("data-index");
      console.dir(index);
    },
...
</script> 

通过e.target获取当前点击的元素之后,获取data-index参数的值,既可知道点击的是哪个button了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,568评论 1 11
  • js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...
    道无虚阅读 2,437评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,879评论 1 45
  • 事件是一种异步编程的实现方式,本质上是程序各个组成部分之间的通信。DOM支持大量的事件,本节介绍DOM的事件编程。...
    许先生__阅读 972评论 0 3
  • 本篇博客源地址 总结: 鼠标事件 1.click与dbclick事件ele.click()ele.click(ha...
    ZombieBrandg阅读 707评论 0 1