引言:做可视化地图项目,使用vue-seamless-scroll实现表格数据自动滚动,有个bug就是复制出来的数据点击事件失效。这个插件底层的实现是cope的形式,

无限滚动原理:无限滚动的原理就是把之前的遍历的内容复制一份,滚动这两部分内容,达到无缝滚动效果。(一般数据量比较多有这种效果,数据量比较少,我就不让他滚动了)。

问题分析:

当第一个ul中的数据滚动完时(真实数据),第二个ul 部分的click事件不起作用(复制出来的数据),无法实现一些点击这行,弹窗详情信息业务需要功能。

我需要这些数据添加一些点击事件,弹出二级页面及区域切换效果。

解决办法:

方式一

采用事件委托的方式:

事件委托又叫事件代理,就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

一般来说,DOM需要有事件处理程序,我们都会直接给它设定事件处理程序就好了,但是如果有很多DOM需要添加处理事件,比如,一个ul下有很多个li,需要给每个li都添加相同的点击事件,这时候我们通常会用for循环的方法,遍历所有元素,然后给他们添加点击事件,虽然看似内心毫无波澜很合理的做法,背后实则存在着巨大的性能弊端。

在JS中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与DOM节点进行交互,所以访问DOM的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间,这就是为什么性能优化的主要思路就是从减少DOM操作的角度去入手的原因。

这种情况,如果用时间委托,就会将所有的操作都放到JS程序里面,与DOM的操作就只需要交互一次,这样就能大大的减少与DOM的交互次数;并且,每一个函数都是一个对象,是对象就会占用内存,对象越多,内存占用率就越大,性能自然就会越差,如果使用事件委托,我们就可以只对它的父级这一个对象进行操作,这样我们就值需要一个内存空间就够了,大量节省了内存空间,提高整体页面的性能了。

给外层div加点击事件,通过event.target获取到点击的dom元素

给点击的列的元素绑定 属性,这里我绑定了id和自定义属性data-obj对象,直接把改列的item添加进去,不用一个一个单独绑定。

点击方法,把原来的点击方法取消,直接在这个底部调用。、

写了一个比较通用的方法其它几个页面按照这个方法也很好用,不用一个个绑定,那个类row纯属做了一个标志位,便于循环之后的判断,如果不清楚,直接console.log,便于定位每个变量。

 大功告成。

使用vue-seamless-scroll自动滚动插件复制出来的数据点击事件无效的解决办法相关推荐

  1. vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法

    vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法 配置和启用海康插件详情看本人博客 链接:https://blog.csdn.net/jinglianglove/article/de ...

  2. Vue下 touchstart touchend 事件无效失效解决办法

    Vue下 touchstart touchend 事件无效失效解决办法 <van-button:disabled="isLoading"plaintype="inf ...

  3. Vue 使用v-html 动态加载代码 点击事件不管用 解决办法

    最近做一个项目,由于数据展示受限制,只能动态拼接代码,但是发现一个问题,在标签上写的@click="xxx()" 不管用,最后专业前端朋友与之解决,话不多说,看解决办法,相信你那么 ...

  4. vscode自动加前缀_详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

    1.在vscode中搜索Autoprofixer 2.在安装完成之后要配置 在需要添加前缀的css文件上,右键点击命令面板,输入Autoprefixer CSS就好啦 ps: 如果想要兼容性最好的话, ...

  5. [vue] vue给组件绑定自定义事件无效怎么解决?

    [vue] vue给组件绑定自定义事件无效怎么解决? 两种方式 1.组件外部加修饰符.navtive 2.组件内部声明$emit('自定义事件') 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放 ...

  6. Vue 移动端项目 百度地图 点击事件无效、不触发 解决方案

    解决百度地图 手机端 点击事件不触发 的一种方案 版权声明:本文为博主原创文章,转载请标明原文出处.  问题背景 我是半路接手的这个项目,该项目使用 Vue 开发的一款 手机端的页面.到手里时,使用百 ...

  7. C# dgv自动排序后,各种样式设定无效的解决办法

    C# dgv自动排序后,各种样式设定无效的解决办法 在网上搜索一些资料还是解决不了,所以自己写了记录一下: 给dgv添加一个sorted事件,每次点击小三角排序时就会调用这个方法,在这里将样式重新设定 ...

  8. 移动端Vue项目a标签点击事件无效

    移动端Vue项目a标签点击事件无效 近期项目出现了部分机型点击无效的现象,后来定位到原来是a标签的问题,将a标签更换为div标签,加宽加高点击范围,就可以解决这个问题. // a标签点击事件不生效 & ...

  9. 关于vue项目本地localhost可以正常访问项目,ip却无法访问项目的解决办法

    关于vue项目本地localhost可以正常访问项目,ip却无法访问项目的解决办法 在进行本地页面调试的时候,地址栏可以输入两种地址来访问页面 http://localhost:8080 http:/ ...

最新文章

  1. centos 下postgres源码安装
  2. NET 应用架构指导 V2 学习笔记(十九) 表现层组件设计指导
  3. vue pc端 商品轮播图_轮播图高点击商品图
  4. SYN 攻击原理以及防范技术
  5. sudo gedit出现No protocol specified
  6. WPF轮播图实现方式
  7. OpenCV中图像轮廓检测
  8. java数据返回到界面,java后台获取网页ajax数据和返回数据简单源码
  9. 拓端tecdat|R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
  10. 国际首个!OpenV2X 开源社区成立,填补 5G 路侧开放基础架构(RSOI)空白
  11. 推荐使用Ubutun16.04亮度调节工具
  12. 集合体系结构、Collection集合概述及常用方法(附迭代器遍历对象实例)、List(附子类LinkedList、ArrayList特点)、ListIterator、并发修改异常、增强for
  13. Addressing Failure Prediction by Learning Model Confidence
  14. ECS的简单入门(二):Entity
  15. Node-RED使用指南:5:设置管理员的登录密码
  16. linux查看image类型,ImageMagick 的一些高级图片查看技巧
  17. 工业智能机器人数量缺口大 核心技术要突破!
  18. 一些浏览器HACKS
  19. UCenter Home
  20. windows电脑上架app store的软件

热门文章

  1. 【渝粤题库】广东开放大学 民事诉讼法学 形成性考核
  2. 计算机移动设备有限公司,使计算机,移动设备更节能
  3. python怎么输入两行_python交互模式下输入换行/输入多行命令的方法
  4. linux查看主机脚本,简单的bash脚本查看任意网段的在线主机
  5. C语言实用算法系列之时间族函数、目录遍历
  6. C语言实现01字符转比特流
  7. java collection详解_java 7 collection 详解(一)
  8. range函数python2和3区别_【后端开发】range函数python2和3区别
  9. 技术管理角色认知-管理都需要做哪些事
  10. csp-s模拟测试41「夜莺与玫瑰·玫瑰花精·影子」