国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談jQuery綁定事件會疊加的解決方法和心得總結

2019-11-20 08:39:55
字體:
來源:轉載
供稿:網友

關于jQuery的學習中我忽略了一個取消綁定事件.unbind()的使用,也不知道綁定事件會累加的情況,結果因為這個原因,讓我在項目上栽了坑。只能說自己還太年輕,需要學習掌握的知識還有很多。

我遇到的問題

我在項目中遇到的狀況,一個評價頁面,簡單的來說就是左右兩個表格,ajax分別動態加載學生姓名學號信息和不同科目對學生評價內容兩部分,兩邊表格我都每行寫了checkbox并對table tbody tr綁定click事件執行行選功能,起初我寫的是靜態頁面html,行選功能完全沒有問題,后來換成jsp頁面,ajax動態加載數據進來后,問題就來了,由于ajax異步請求,兩邊表格發送請求加載數據有先后,之前靜態頁面測試好的行選功能就出了問題,每次刷新頁面,只有后加載的部分才可以行選,之前加載的部分行選失效。自己控制臺打印點擊的狀態console.log(chkBoxStatus);測試發現前加載的部分總是打印兩次false true,而后加載的部分只打印一次false或是true。

我之前的行選代碼段:

//行選功能   $("table tbody tr").click(function(event) {  //遍歷tr下的checkbox元素  var $check = $(this).find("input[type=checkbox]");  //判斷非點擊checkbox本身  if($check.length > 0 && event.target != $check[0]) {     var chkBoxStatus = $check.is("input:checked");    console.log(chkBoxStatus);    $check.prop("checked", !chkBoxStatus);   }  });

起初我認為我肯定是jQuery功能代碼不對,于是自己檢查了html里id,class,發現并沒有出錯,于是我便一直在想為何控制臺會意外打印兩次,后面室友提示我說,試試在執行功能之前清除事件綁定,于是我便照做了用jquery 的.unbind("click"),清除所有table上的click事件。結果!結果竟然成功了?。?!兩邊的表格數據都可以正常進行行選功能,雖然是完成了預期功能,但是我當時不知道為什么要這樣去做清除事件。后面我突然想到原來是執行了兩次click事件的結果,每次先加載的數據,加載完畢后就被綁定click事件一次,后加載的數據加載完畢后,之前先加載的數據再次被綁定一次click事件,所以也就是為什么先加載的數據行選失效,打印兩次false true , 而后加載的數據行選正常,打印一次。

下面是修改后的代碼:

//行選功能   $("table tbody tr").unbind("click");//清除table的所有click事件    $("table tbody tr").click(function(event) {  //遍歷tr下的checkbox元素  var $check = $(this).find("input[type=checkbox]");  //判斷非點擊checkbox本身  if($check.length > 0 && event.target != $check[0]) {     var chkBoxStatus = $check.is("input:checked");    console.log(chkBoxStatus);    $check.prop("checked", !chkBoxStatus);   }  });

雖然問題很小,但是也是學習,總之自己還是需要不斷努力,完善自己。博文只是對自己的總結

以上就是小編為大家帶來的淺談jQuery綁定事件會疊加的解決方法和心得總結全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 苏州市| 汝南县| 林芝县| 巨野县| 九江县| 汉阴县| 康平县| 巴楚县| 工布江达县| 桦南县| 綦江县| 湖北省| 冷水江市| 衡水市| 苏州市| 怀柔区| 商南县| 镇平县| 会昌县| 无极县| 福海县| 南雄市| 佳木斯市| 留坝县| 昆山市| 正阳县| 浠水县| 镇雄县| 博湖县| 清河县| 彭阳县| 抚远县| 镇原县| 合阳县| 龙州县| 松桃| 郧西县| 雷山县| 奉化市| 陆河县|