html里嵌套了兩層循環,在處理復選框時,上面的多選生效,單選方法會執行兩次,導致方法不好使
這是js里的方法,也是上面html里的兩個方法,我在嘗試打印console時發現執行了兩次,當時不知道因為啥就加了一個計時器
不出所料還是沒好用,我查過相關資料,瀏覽器會有這種情況,用計時器就可以解決,但真機上是不會有這種問題的,所以如果項目只用於瀏覽器遇到這種問題就可以用計時器,原文章是這樣說
到此為止我的問題也沒有解決,我就在想會不會是時間冒泡或者是事件委托的問題,我就嘗試了一下,果然好用,方法不會執行兩次了
但是出現了新的問題,在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