【問(wèn)題原因】
這個(gè)應(yīng)該是 jquery.datatable 控件本身的一個(gè)缺陷。該控件中的checkbox小插件的 id是寫(xiě)死的,所以當(dāng) 有多個(gè)datatable 引用到一個(gè)頁(yè)面中的時(shí)候,全選事件會(huì)匹配全部的datatable ,所以造成全部多個(gè)表格的 checkbox被都被選中。
【解決方法】
所以最好是修改jquery.datatable控件,給生成的每個(gè)datatable下的checkbox賦 予不同的id,因?yàn)閐atatable的id是不一樣的,所以可以把 datatable的id作為 checkbox的前綴組成一個(gè)唯一的id 。 具體這個(gè)checkbox的調(diào)用事件也需要同步 替換成這個(gè)新id,進(jìn)行事件的調(diào)用。
[修改文件]
jqurey.datatable.ext.js (v0.0.1)
unity3d下載 http://www.unitymanual.com/
創(chuàng)新互聯(lián)公司長(zhǎng)期為近1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為山城企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),山城網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
1. init方法修改:
代碼如下:
$("#"+options.select_table).find('thead tr th:first-child')
.prepend('');
==>
$("#"+options.select_table).find('thead tr th:first-child')
.prepend('');
2.subscribeAllChk方法修改:
代碼如下:
$("#chk_all").click(function(){
==>
$("#"+$.fn.datatable_ext.defaults.select_table+"_chk_all").click(function(){
3.subscribeChk方法修改:
代碼如下:
if(checked_chk_num == curr_page_chk_num){
$("#chk_all").attr('checked', 'checked');
}else{
$("#chk_all").removeAttr('checked');
}
==>
if(checked_chk_num == curr_page_chk_num){
$("#"+$.fn.datatable_ext.defaults.select_table+"_chk_all").attr('checked', 'checked');
}else{
$("#"+$.fn.datatable_ext.defaults.select_table+"_chk_all").removeAttr('checked');
}