vue循环里添加点击事件,方法执行来两次


html里嵌套了两层循环,在处理复选框时,上面的多选生效,单选方法会执行两次,导致方法不好使

 

 

这是js里的方法,也是上面html里的两个方法,我在尝试打印console时发现执行了两次,当时不知道因为啥就加了一个计时器

不出所料还是没好用,我查过相关资料,浏览器会有这种情况,用计时器就可以解决,但真机上是不会有这种问题的,所以如果项目只用于浏览器遇到这种问题就可以用计时器,原文章是这样说

 

原文章地址:https://www.jianshu.com/p/970d20d00ee4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation


到此为止我的问题也没有解决,我就在想会不会是时间冒泡或者是事件委托的问题,我就尝试了一下,果然好用,方法不会执行两次了

 

 但是出现了新的问题,在js直接改select的值不生效了,然后我就用到了最近两天新学的ES6的新方法,$set()

 

 这样就好使了,至此我遇到的问题解决了,如果我上述有什么问题写的不对欢迎指正

 

 

2021-03-0914:15:55     下面还有彩蛋

 

 

 

 

 

关于$set的方法我还有几句要唠叨一下,因为自己踩过,虽说问题不大,也希望遇到此篇文章的小伙伴可以少菜个坑

$set()的设置有两种格式,一是对象的,二是数组的,传值方式有所不同,在vue里如果遇到在js里赋值html没有同事响应的就可以试一下这个方法

object 赋值  

$set(obj,'select',value)

   obj 是要改变的对像

   selsct是要改变当前的属性

   value 是给当前属性赋值

数组赋值
$set(arr,'0',val)

  arr 是要改变当前的数组

       0  是数组的小标 

       val 是要赋的值

这个是我之前遇到的问题在别的地方看到的,现在找不到原地址了,他那里写的很全面,之后再有遇到会补充
关于set使用的事例 https://blog.csdn.net/hjhfreshman/article/details/96312343?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM