欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談jQuery綁定事件會(huì)疊加的解決方法和心得總結(jié)

 更新時(shí)間:2016年10月26日 09:02:15   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談jQuery綁定事件會(huì)疊加的解決方法和心得總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

關(guān)于jQuery的學(xué)習(xí)中我忽略了一個(gè)取消綁定事件.unbind()的使用,也不知道綁定事件會(huì)累加的情況,結(jié)果因?yàn)檫@個(gè)原因,讓我在項(xiàng)目上栽了坑。只能說(shuō)自己還太年輕,需要學(xué)習(xí)掌握的知識(shí)還有很多。

我遇到的問(wèn)題

我在項(xiàng)目中遇到的狀況,一個(gè)評(píng)價(jià)頁(yè)面,簡(jiǎn)單的來(lái)說(shuō)就是左右兩個(gè)表格,ajax分別動(dòng)態(tài)加載學(xué)生姓名學(xué)號(hào)信息和不同科目對(duì)學(xué)生評(píng)價(jià)內(nèi)容兩部分,兩邊表格我都每行寫(xiě)了checkbox并對(duì)table tbody tr綁定click事件執(zhí)行行選功能,起初我寫(xiě)的是靜態(tài)頁(yè)面html,行選功能完全沒(méi)有問(wèn)題,后來(lái)?yè)Q成jsp頁(yè)面,ajax動(dòng)態(tài)加載數(shù)據(jù)進(jìn)來(lái)后,問(wèn)題就來(lái)了,由于ajax異步請(qǐng)求,兩邊表格發(fā)送請(qǐng)求加載數(shù)據(jù)有先后,之前靜態(tài)頁(yè)面測(cè)試好的行選功能就出了問(wèn)題,每次刷新頁(yè)面,只有后加載的部分才可以行選,之前加載的部分行選失效。自己控制臺(tái)打印點(diǎn)擊的狀態(tài)console.log(chkBoxStatus);測(cè)試發(fā)現(xiàn)前加載的部分總是打印兩次false true,而后加載的部分只打印一次false或是true。

我之前的行選代碼段:

//行選功能 
  $("table tbody tr").click(function(event) {

  //遍歷tr下的checkbox元素
  var $check = $(this).find("input[type=checkbox]");

  //判斷非點(diǎn)擊checkbox本身
  if($check.length > 0 && event.target != $check[0]) { 
    var chkBoxStatus = $check.is("input:checked");
    console.log(chkBoxStatus);
    $check.prop("checked", !chkBoxStatus); 
  }

  });

起初我認(rèn)為我肯定是jQuery功能代碼不對(duì),于是自己檢查了html里id,class,發(fā)現(xiàn)并沒(méi)有出錯(cuò),于是我便一直在想為何控制臺(tái)會(huì)意外打印兩次,后面室友提示我說(shuō),試試在執(zhí)行功能之前清除事件綁定,于是我便照做了用jquery 的.unbind("click"),清除所有table上的click事件。結(jié)果!結(jié)果竟然成功了!?。蛇叺谋砀駭?shù)據(jù)都可以正常進(jìn)行行選功能,雖然是完成了預(yù)期功能,但是我當(dāng)時(shí)不知道為什么要這樣去做清除事件。后面我突然想到原來(lái)是執(zhí)行了兩次click事件的結(jié)果,每次先加載的數(shù)據(jù),加載完畢后就被綁定click事件一次,后加載的數(shù)據(jù)加載完畢后,之前先加載的數(shù)據(jù)再次被綁定一次click事件,所以也就是為什么先加載的數(shù)據(jù)行選失效,打印兩次false true , 而后加載的數(shù)據(jù)行選正常,打印一次。

下面是修改后的代碼:

//行選功能 
  $("table tbody tr").unbind("click");//清除table的所有click事件  
  $("table tbody tr").click(function(event) {

  //遍歷tr下的checkbox元素
  var $check = $(this).find("input[type=checkbox]");

  //判斷非點(diǎn)擊checkbox本身
  if($check.length > 0 && event.target != $check[0]) { 
    var chkBoxStatus = $check.is("input:checked");
    console.log(chkBoxStatus);
    $check.prop("checked", !chkBoxStatus); 
  }

  });

雖然問(wèn)題很小,但是也是學(xué)習(xí),總之自己還是需要不斷努力,完善自己。博文只是對(duì)自己的總結(jié)

以上就是小編為大家?guī)?lái)的淺談jQuery綁定事件會(huì)疊加的解決方法和心得總結(jié)全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • jQuery插件HighCharts繪制2D半圓環(huán)圖效果示例【附demo源碼下載】

    jQuery插件HighCharts繪制2D半圓環(huán)圖效果示例【附demo源碼下載】

    這篇文章主要介紹了jQuery插件HighCharts繪制2D半圓環(huán)圖效果,結(jié)合實(shí)例形式分析了jQuery使用HighCharts插件繪制半圓環(huán)圖形的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-03-03
  • IE下使用jQuery重置iframe地址時(shí)內(nèi)存泄露問(wèn)題解決辦法

    IE下使用jQuery重置iframe地址時(shí)內(nèi)存泄露問(wèn)題解決辦法

    這篇文章主要介紹了IE下使用jQuery重置iframe地址時(shí)內(nèi)存泄露問(wèn)題解決辦法,需要的朋友可以參考下
    2015-02-02
  • jQuery中bind(),live(),delegate(),on()綁定事件方法實(shí)例詳解

    jQuery中bind(),live(),delegate(),on()綁定事件方法實(shí)例詳解

    這篇文章主要介紹了jQuery中bind(),live(),delegate(),on()綁定事件方法,結(jié)合實(shí)例形式詳細(xì)分析了bind(),live(),delegate(),on()方法綁定事件的具體使用技巧,并對(duì)比分析了四種方式的異同點(diǎn),需要的朋友可以參考下
    2016-01-01
  • jQuery實(shí)現(xiàn)優(yōu)雅的彈窗效果(6)

    jQuery實(shí)現(xiàn)優(yōu)雅的彈窗效果(6)

    這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)優(yōu)雅彈窗效果 的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • jQuery基礎(chǔ)框架淺入剖析

    jQuery基礎(chǔ)框架淺入剖析

    jQuery基礎(chǔ)框架:原型模式結(jié)構(gòu)、返回選擇器實(shí)例、訪問(wèn)原型方法、自執(zhí)行匿名函數(shù)詳細(xì)介紹,需要了解的朋友可以參考下
    2012-12-12
  • jQuery中innerWidth()方法用法實(shí)例

    jQuery中innerWidth()方法用法實(shí)例

    這篇文章主要介紹了jQuery中innerWidth()方法用法,實(shí)例分析了innerWidth()方法的功能、定義及獲取第一個(gè)匹配元素內(nèi)部區(qū)域?qū)挾鹊氖褂眉记?需要的朋友可以參考下
    2015-01-01
  • JQEasy-ui在IE9以下版本中二次加載的問(wèn)題分析及處理方法

    JQEasy-ui在IE9以下版本中二次加載的問(wèn)題分析及處理方法

    之前項(xiàng)目中才用了Easy-ui,但是在同時(shí)使用tree和grid的效果時(shí),因?yàn)轫?yè)面有倆個(gè)URL,分別為Ajax樹(shù)去后臺(tái)取數(shù)據(jù)和Grid取數(shù)據(jù),在IE9以上以及其他瀏覽器里都沒(méi)有問(wèn)題,在Ie低版本時(shí)會(huì)出現(xiàn)先加載表格,然后一閃而過(guò)加載樹(shù)渲染頁(yè)面,造成頁(yè)面只有tree數(shù)據(jù)而沒(méi)有表格grid數(shù)據(jù)。
    2014-06-06
  • jQuery之網(wǎng)頁(yè)換膚實(shí)現(xiàn)代碼

    jQuery之網(wǎng)頁(yè)換膚實(shí)現(xiàn)代碼

    用jQuery做網(wǎng)頁(yè)換膚確實(shí)是很一個(gè)很巧妙,很好的選擇,這是本人在學(xué)習(xí)jQuery中學(xué)的知識(shí),感覺(jué)很有用,寫(xiě)了下來(lái),希望大家有更好的方法或者代碼不足的地方請(qǐng)諒解,本人也是初學(xué)者啊,希望大家互相勉勵(lì)互相學(xué)習(xí)。
    2011-04-04
  • jQuery Ajax 全解析

    jQuery Ajax 全解析

    本文地址: jQuery Ajax 全解析 本文作者:QLeelulu
    2009-02-02
  • jQuery 中的 DOM 操作

    jQuery 中的 DOM 操作

    在DOM操作中,常常需要?jiǎng)討B(tài)創(chuàng)建HTML內(nèi)容,使文檔在瀏覽器里的呈現(xiàn)效果發(fā)生變化,并且達(dá)到各種各樣的人機(jī)交互目的.
    2016-04-04

最新評(píng)論