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

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

问题描述:

工具栏的点击事件,会冒泡到行点击事件中,原打算阻止事件冒泡 ,结果失败,阻止不了,索性不用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('>))].id;     
    window.location.href = basePath + '/contract/look.do?conId='+_id;
})

//监听行内工具栏操作
$('#conTableInfo').on('click','td[]',function (e) {
    var _event = $(this).find('[lay-event]').attr('lay-event');
    var _obj = table.cache.conManager[parseInt($(this).parent('tr').attr('>))];   //行内数据
    switch(_event) {
         case 'edit':
               break;
         case 'del':
               break;
         default:
     }
     return false; //阻止事件冒泡
})

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_9069