table.on('toolbar(test)', function(obj){} 无效
时间: 2023-12-30 08:02:48 浏览: 196
如果 `table.on('toolbar(test)', function(obj){})` 无效,可能是因为以下原因:
1. `test` 没有被正确地赋值给表格的 `lay-filter` 属性。在定义表格的地方,应该给表格定义一个 `lay-filter` 属性,其值为 `test`,如下所示:
```javascript
table.render({
elem: '#demo',
url: '/demo/table/user/',
toolbar: '#toolbarDemo',
cols: [[
{field:'id', title:'ID'},
{field:'username', title:'用户名'},
{field:'email', title:'邮箱', event:'emailClick'} // 给邮箱列的表头添加一个自定义的 lay-event 属性
]],
// 给表格定义一个 lay-filter 属性
// 其中,lay-filter 的值应该与 table.on 方法中的第一个参数相同
// 这里的值为 test
// 如果你在 table.on 方法中使用的是其他值,那么这里也需要相应地进行修改
// 否则,table.on 方法就无法正确地监听表格的 toolbar 事件
// 也就无法达到添加点击事件的效果
// 所以,这里需要特别注意
// 如果你之前已经定义了 lay-filter 属性,那么可以直接在 lay-filter 的值后面加上 test
// 如:lay-filter="demoTableTest"
lay-filter: 'test'
});
```
2. 如果你使用了多个表格,并且每个表格都有自己的 `toolbar`,那么需要确保每个表格的 `toolbar` ID 都是唯一的。否则,会导致多个表格之间的 `toolbar` 事件冲突。可以通过在每个表格的 `toolbar` 中添加一个类似于表格 ID 的前缀来实现。例如:
```html
<div class="layui-btn-container">
<!-- 表格 1 的 toolbar -->
<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
<button class="layui-btn layui-btn-sm" lay-event="delete">删除</button>
</div>
<table id="demo1" lay-filter="test1"></table>
<div class="layui-btn-container">
<!-- 表格 2 的 toolbar -->
<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
<button class="layui-btn layui-btn-sm" lay-event="delete">删除</button>
</div>
<table id="demo2" lay-filter="test2"></table>
```
在这个例子中,每个表格的 `toolbar` ID 都是唯一的,因为它们都包含了表格的 ID 前缀。如果你的表格没有使用 ID,那么可以使用其他前缀,只要保证每个表格的 `toolbar` ID 都是唯一的即可。
阅读全文