<table class="layui-hide" id="identity" lay-filter="test" style="height:100%"></table>
table.on('toolbar(identity)', function (obj) {
console.log(obj);
var checkStatus = table.checkStatus(obj.config.id);
switch (obj.event) {
case 'getCheckData':
var data = checkStatus.data;
console.log(data);
layer.alert(JSON.stringify(data));
break;
case 'getCheckLength':
var data = checkStatus.data;
layer.msg('选中了:' + data.length + ' 个');
break;
case 'isAll':
layer.msg(checkStatus.isAll ? '全选' : '未全选');
break;
//自定义头工具栏右侧图标 - 提示
case 'LAYTABLE_TIPS':
layer.alert('这是工具栏右侧自定义的一个图标按钮');
break;
};
});
复制了官方代码,并稍作修改,发现头部工具栏按钮失效。
把官方文档看了好几遍,终于看到几个小字。
语法:table.on('event(filter)', callback); 注:event为内置事件名,filter为容器lay-filter设定的值
原来事件触发需要查找lay-filter属性,table标签中的lay-filter属性为test,那就搞错了。
解决方案:把事件中的参数改成和lay-filter一致即可。不必和id名称一致,不影响。
注:尝试不添加lay-filter属性,看看是否在渲染的时候会不会自动添加和id相同的lay-filter属性。答案是:不会。
当然有空去改源代码的话,还是不错的选择。。。
所以还是老老实实用上lay-filter。