最近項目使用layui較為頻繁,遇到了一個麻煩的問題,網上搜索也沒有看到同類型的問題,故此記下來。

需求是點擊上圖右側表格中某一個單元格,會觸發點擊事件如下代碼:
$("table>tbody>tr>td").click(function(){
chickstr=$(this).attr("data-field");
if(typeof(chickstr)=='string'){
if(chickstr.indexOf("indiCode") != -1 ){
chickstr=chickstr.charAt(chickstr.length-1);
}
}
});
當頁面刷新后,不點擊左側指標排名處的排序按鈕時,上面的觸發事件有效,正常執行;但是當點擊排序按鈕后,上面的觸發事件無效了。
原因在於layui點擊排序后,表格重新組合,原有綁定事件失效。
解決方法:在觸發排序按鈕的方法最后面,為表格重新綁定點擊事件。
table.on('sort(demoEvent)', function(obj){
...
table.reload(tableid, {
...
});
//此處需重新為單元格綁定點擊事件,因為layui點擊排序后,表格重新組合,原有綁定事件失效
$("table>tbody>tr>td").click(function(){
chickstr=$(this).attr("data-field");
if(typeof(chickstr)=='string'){
if(chickstr.indexOf("indiCode") != -1 ){
chickstr=chickstr.charAt(chickstr.length-1);
}
}
});
});
