JavaScript動(dòng)態(tài)加載重復(fù)綁定問(wèn)題
前言
在添加一條數(shù)據(jù)時(shí),使用動(dòng)態(tài)加載顯示在界面,后來(lái)發(fā)現(xiàn)一個(gè)嚴(yán)重的bug,拿我做的這個(gè)便簽為例,當(dāng)我添加一條數(shù)據(jù)后,然后點(diǎn)擊刪除的時(shí)候,提示是否刪除,如下圖:
但是當(dāng)我添加兩條以上的數(shù)據(jù)時(shí),刪除第幾條就會(huì)提示幾次是否確認(rèn)刪除。
經(jīng)過(guò)排查,終于發(fā)現(xiàn)問(wèn)題所在。
正文
當(dāng)動(dòng)態(tài)添加內(nèi)容后,通常會(huì)寫(xiě)上添加的這些div中需要用到的事件,比如click事件/chang事件等。還拿我的刪除事件為例,由于刪除事件必須寫(xiě)在添加便簽的事件下,所以當(dāng)添加第一條數(shù)據(jù)時(shí),綁定一次,添加第二條時(shí),綁定一次,添加第n條數(shù)據(jù)時(shí),已經(jīng)綁定了n次刪除事件,所以在刪除第n條數(shù)據(jù)時(shí),也就會(huì)提示n次是否確認(rèn)刪除。
既然找到了錯(cuò)誤的原因,就好解決了,在綁定刪除事件前,只要把上次綁定的事件解綁就可以了。
代碼:
//解綁 $(".deletebtn").off("click"); $(".update").off("change"); //綁定 $(".deletebtn").bind('click', delete_click); $(".update").bind('change', change_fonts);
總結(jié)
以上所述是小編給大家介紹的JavaScript動(dòng)態(tài)加載重復(fù)綁定問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)
及時(shí)回復(fù)大家的!
- javascript重復(fù)綁定事件造成的后果說(shuō)明
- 使用jQuery的load方法設(shè)計(jì)動(dòng)態(tài)加載及解決被加載頁(yè)面js失效問(wèn)題
- js/jquery控制頁(yè)面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
- AngularJS實(shí)現(xiàn)根據(jù)變量改變動(dòng)態(tài)加載模板的方法
- JS動(dòng)態(tài)加載腳本并執(zhí)行回調(diào)操作
- javascript實(shí)現(xiàn)瀑布流動(dòng)態(tài)加載圖片原理
- JS加載器如何動(dòng)態(tài)加載外部js文件
相關(guān)文章
詳解CocosCreator項(xiàng)目結(jié)構(gòu)機(jī)制
這篇文章主要介紹了詳解CocosCreator項(xiàng)目結(jié)構(gòu)機(jī)制,只有了解這些機(jī)制后,才能更好的進(jìn)行項(xiàng)目開(kāi)發(fā),避免潛在錯(cuò)誤,并且快速的除錯(cuò)2021-04-04TypeScript新特性之using關(guān)鍵字的使用方法
TypeScript 5.2版本中新添加了using關(guān)鍵字,目前該關(guān)鍵字的提案也進(jìn)入了ECMAScript的Stage 3,也就是說(shuō)很快就會(huì)進(jìn)入JavaScript語(yǔ)言本身中,using和const, let和var一樣都是用于變量聲明的,那么它到底有什么與眾不同的地方呢,本文給大家介紹的非常詳細(xì)2023-11-11element-ui?對(duì)話框dialog使用echarts報(bào)錯(cuò)'dom沒(méi)有獲取到'的問(wèn)題
這篇文章主要介紹了element-ui?對(duì)話框dialog里使用echarts,報(bào)錯(cuò)'dom沒(méi)有獲取到'的問(wèn)題,在這個(gè)事件里邊進(jìn)行echarts的初始化,執(zhí)行數(shù)據(jù),本文結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11