处理layui table 行点击事件与列点击事件冲突

36 篇文章 0 订阅

问题描述:

工具栏的点击事件,会冒泡到行点击事件中,原打算阻止事件冒泡 ,结果失败,阻止不了,索性不用layui官网的工具栏tool和行row监听事件。

table:

<table id="conManager" lay-filter="conManager" class="layui-table layui-form"></table>

 

原本的监听事件,如下:

        //监听行单击事件
        table.on('row(conManager)', function(obj){
          window.location.href = basePath + '/contract/look.do?conId='+obj.data.id;
        });
          //监听行内工具栏操作
          table.on('tool(conManager)', function(obj){
              switch(obj.event) {
                  case 'edit':
                      break;
                  case 'del':break;
           default:
              }
          });

 

 

更改后,如下:

#conTableInfo为table容器的id  
        //监听行单击事件
          $('#conTableInfo').on('click','div[lay-id="conManager"] .layui-table-body tr',function () {
              var _id = table.cache.conManager[parseInt($(this).attr('data-index'))].id;     
              window.location.href = basePath + '/contract/look.do?conId='+_id;
          })
          //监听行内工具栏操作
          $('#conTableInfo').on('click','td[data-field="operation"]',function (e) {
              var _event = $(this).find('[lay-event]').attr('lay-event');
              var _obj = table.cache.conManager[parseInt($(this).parent('tr').attr('data-index'))];   //行内数据
              switch(_event) {
                  case 'edit':
               break;
                  case 'del':
                      break;
                  default:
              }
              return false; //阻止事件冒泡
          })

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layuitable 是基于 layui 框架的表格组件,在其中可以通过监听表格的事件来实现点击事件。具体实现步骤如下: 1. 在表格渲染之前,设置表格的事件监听器: ```javascript layui.use('table', function(){ var table = layui.table; //监听单元格事件 table.on('tool(test)', function(obj){ //获取当前数据 var data = obj.data; //获取当前事件 var event = obj.event; //根据事件类型进相应的处理 if(event === 'detail'){ //处理详情事件 } else if(event === 'edit'){ //处理编辑事件 } else if(event === 'delete'){ //处理删除事件 } }); //渲染表格 table.render({ elem: '#test', url:'/demo/table/user/', cols: [[ {field:'id', title:'ID', width:80}, {field:'username', title:'用户名', width:120}, {field:'sex', title:'性别', width:80, sort:true}, {field:'city', title:'城市', width:100}, {field:'sign', title:'签名', width:200}, {field:'experience', title:'积分', width:80, sort:true}, {field:'score', title:'评分', width:80, sort:true}, {field:'classify', title:'职业', width:100}, {field:'wealth', title:'财富', width:135, sort:true}, {fixed: 'right', title:'操作', toolbar:'#barDemo', width:150} ]] }); }); ``` 2. 在表格的 HTML 代码中,设置每个单元格的事件类型: ```html <table id="test" lay-filter="test"></table> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-xs" lay-event="detail">查看</a> <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a> </script> ``` 在上述代码中,通过 lay-event 属性为每个操作按钮指定了相应的事件类型,当用户点击该按钮时,就触发相应的事件处理函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值