不要使用 row 来监听行了,虽然他更方便,但却无法和同在一行的其他事件兼容!文档中提到这个事件是从 layui 2.4.0 开始新增的,所以我想这也是他跟其他的监听事件不兼容的原因之一吧。
放弃row(),使用 tool() 就可以解决问题啦!
首先在方法渲染的时候,在cols中给除了复选框的列(这是我的需求,因为我需要监听复选框)设置参数event,然后通过tool进行监听,代码如下:
cols: [[ //表头
{ type: 'radio', fixed: 'left' }
, { type: 'numbers', title: '序号', event: 'singleclick' }
, { field: 'yyrq', title: '预约日期', event: 'singleclick', width: 180, sort: true }
, { field: 'yyhjr', title: '会见人', event: 'singleclick', sort: true, width: 180 }
, { field: 'yyhjrsfz', title: '会见人身份证', event: 'singleclick', sort: true, width: 180 }
]]
// 监听行单击事件
table.on('tool(tableZyry)', function (obj) {
myData = obj.data // 得到当前行数据
console.log(myData);
flag = true;
form.val("showInfo", {
'yydjsj': myData.yydjsj
, 'yylfryxm': myData.yylfryxm
, 'yylfrysfz': myData.yylfrysfz
, 'yylfrylb': myData.yylfrylb
, 'yylfrylbmx': myData.yylfrylbmx
, 'yylfrysjh': myData.yylfrysjh
, 'sfzxhj': myData.sfzxhj===0?'否':'是'
});
//选中radio样式
//选中行样式
obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click')
obj.tr.find('div.layui-unselect.layui-form-radio')[1].click();
if (obj.event == 'singleclick') {
searchFrInfo(myData.yyjlid, myData);
}
});