Compare commits

...

2 Commits

Author SHA1 Message Date
贤心
7b2ece1bba docs: 更新文档 2024-06-27 22:46:05 +08:00
贤心
d6157c73cf chore(table): 优化行事件,新增返回 event 对象,可用于阻止事件冒泡 2024-06-27 22:29:01 +08:00
3 changed files with 45 additions and 15 deletions

View File

@ -768,18 +768,31 @@ table.render({
});
// 行单击事件
table.on('row(test)', function(obj){
table.on('row(test)', function(obj) {
var data = obj.data; // 得到当前行数据
var dataCache = obj.dataCache; // 得到当前行缓存数据,包含特定字段 --- 2.8.8+
var index = obj.index; // 得到当前行索引
var tr = obj.tr; // 得到当前行 <tr> 元素的 jQuery 对象
var options = obj.config; // 获取当前表格基础属性配置项
console.log(obj); // 查看对象所有成员
// 根据自定条件,阻止某个单元格的行事件
var event = obj.event; // 2.9.14+
var td = $(event.target).closest('td');
if (td.data('edit')) { // 此处以阻止可编辑列的行事件为例
return layui.stope(event);
}
console.log('onrow', obj); // 查看返回对象的所有成员
// obj.del() // 删除当前行
// obj.update(fields, related); // 修改行数据
// obj.setRowChecked(opts); // 设置行选中状态
});
// 行双击事件
table.on('rowDouble(test)', function(obj) {
console.log('onrowDouble', obj); // 查看返回对象的所有成员 - 同 row 事件
});
```
<h3 id="on-rowContextmenu" lay-pid="table.on" class="ws-anchor ws-bold">行右键菜单事件 <sup>2.8+</sup></h3>

View File

@ -555,18 +555,32 @@ layui.use(['table', 'dropdown'], function(){
});
// 行单击事件
table.on('row(test)', function(obj){
console.log(obj);
// layer.closeAll('tips');
table.on('row(test)', function(obj) {
// 根据自定条件,阻止某个单元格的行事件
var event = obj.event; // 2.9.14+
var td = $(event.target).closest('td');
if (td.data('edit')) { // 此处以阻止可编辑列的行事件为例
return layui.stope(event);
}
console.log('onrow', obj);
// 单击行设置选中
obj.setRowChecked({
// type: 'radio'
});
// layer.msg('row 事件')
});
// 行双击事件
table.on('rowDouble(test)', function(obj){
console.log(obj);
table.on('rowDouble(test)', function(obj) {
// 根据自定条件,阻止某个单元格的行事件
var event = obj.event; // 2.9.14+
var td = $(event.target).closest('td');
if (td.data('edit')) { // 此处以阻止可编辑列的行事件为例
return layui.stope(event);
}
console.log('onrowDouble', obj);
});
// 单元格编辑事件

View File

@ -2504,21 +2504,24 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
if( $(e.target).is(UNROW) || $(e.target).closest(UNROW)[0]){
return;
}
setRowEvent.call(this, 'row');
}).on('dblclick', 'tr', function(){ // 双击行
setRowEvent.call(this, 'rowDouble');
setRowEvent.call(this, 'row', e);
}).on('dblclick', 'tr', function(e){ // 双击行
setRowEvent.call(this, 'rowDouble', e);
}).on('contextmenu', 'tr', function(e){ // 菜单
if (!options.defaultContextmenu) e.preventDefault();
setRowEvent.call(this, 'rowContextmenu');
setRowEvent.call(this, 'rowContextmenu', e);
});
// 创建行单击、双击、菜单事件
var setRowEvent = function(eventType){
var setRowEvent = function(eventType, eventObject){
var othis = $(this);
if(othis.data('off')) return; //不触发事件
layui.event.call(this,
layui.event.call(
this,
MOD_NAME, eventType + '('+ filter +')',
commonMember.call(othis.children('td')[0])
commonMember.call(othis.children('td')[0], {
event: eventObject
})
);
};