当在表格里定义button,且不声明type时,浏览器会基于一个默认值,chrome给的是submit,因此会触发表单submit事件。

    button type: Tip: Always specify the type attribute for the

    因此,为了方便,可将button替换为a,效果一样:

    1. <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-event="del">删除</button>
    2. <a class="layui-btn layui-btn-warm layui-btn-sm" lay-event="del">删除</a>

    另外为了触发行工具事件,一定要加上lay-event,即使你用不到,否则不会触发点击事件

    这是官网模板:

    1. <script type="text/html" id="barDemo">
    2. <a class="layui-btn layui-btn-xs" lay-event="detail">查看</a>
    3. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    4. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    5. <!-- 这里同样支持 laytpl 语法,如: -->
    6. {{# if(d.auth > 2){ }}
    7. <a class="layui-btn layui-btn-xs" lay-event="check">审核</a>
    8. {{# } }}
    9. </script>
    10. 注意:属性 lay-event="" 是模板的关键所在,值可随意定义。
    11. //工具条事件
    12. table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test table 原始容器的属性 lay-filter="对应的值"
    13. var data = obj.data; //获得当前行数据
    14. var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
    15. var tr = obj.tr; //获得当前行 tr DOM 对象(如果有的话)
    16. if(layEvent === 'detail'){ //查看
    17. //do somehing
    18. } else if(layEvent === 'del'){ //删除
    19. layer.confirm('真的删除行么', function(index){
    20. obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
    21. layer.close(index);
    22. //向服务端发送删除指令
    23. });
    24. } else if(layEvent === 'edit'){ //编辑
    25. //do something
    26. //同步更新缓存对应的值
    27. obj.update({
    28. username: '123'
    29. ,title: 'xxx'
    30. });
    31. } else if(layEvent === 'LAYTABLE_TIPS'){
    32. layer.alert('Hi,头部工具栏扩展的右侧图标。');
    33. }
    34. });