layui表格点击排序按钮后,表格绑定事件失效解决方法

最近项目使用layui较为频繁,遇到了一个麻烦的问题,网上搜索也没有看到同类型的问题,故此记下来。

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);
  }
   }
   });  
});

上一篇:处理移动端click事件300ms延迟的好方法—FastClick


下一篇:oc-05-对象的创建