问题描述:
工具栏的点击事件,会冒泡到行点击事件中,原打算阻止事件冒泡 ,结果失败,阻止不了,索性不用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; //阻止事件冒泡
})