最近项目使用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);
}
}
});
});