• layui table 点击行事件 选中checkbox


    //单击事件
                table.on('row(test)', function (obj) {
    
                    //判断是否被选中
                    if (obj.tr.find('.layui-form-checkbox').hasClass('layui-form-checked')) { 
                        //设置为未选中的样式
                        obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');
                    }
                    else {
                        //设置为选中的样式
                        obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');
                    }
    
                        //var checkStatus = table.checkStatus('test');
                });

    这个方式,只是为checkbox添加样式,通过 table.checkStatus('ifrTbl'); 检查并不能获取勾选数据。

    //单击行勾选checkbox事件
                $(document).on("click", ".layui-table-body table.layui-table tbody tr", function () {
                    var index = $(this).attr('data-index');
                    var tableBox = $(this).parents('.layui-table-box');
                    //存在固定列
                    var tableDiv;
                    if (tableBox.find(".layui-table-fixed.layui-table-fixed-l").length > 0) {
                        tableDiv = tableBox.find(".layui-table-fixed.layui-table-fixed-l");
                    } else {
                        tableDiv = tableBox.find(".layui-table-body.layui-table-main");
                    }
                    var checkCell = tableDiv.find("tr[data-index=" + index + "]").find("td div.laytable-cell-checkbox div.layui-form-checkbox I");
                    if (checkCell.length > 0) {
                        checkCell.click();
                    }
                });
                //对td的单击事件进行拦截停止,防止事件冒泡
                $(document).on("click", "td div.laytable-cell-checkbox div.layui-form-checkbox", function (e) {
                    e.stopPropagation();
                });

    以上方式实现原理:找到table的div绑定单击事件到表格的行:

    1、取得行的索引data-index,为后面查找checkbox的控件作准备

    2、根据是否有固定列查找checkbox所在的表格table(当存在固定列时,固定列是另一个table,checkbox控件就在这上面,因此要优先取这个)

    3、通过table和data-index查找checkbox控件”td div.laytable-cell-checkbox div.layui-form-checkbox I”,如果存在,则执行单击

    4、对td的单击事件进行拦截停止,防止事件冒泡再次触发上述的单击事件5、将此代码在页面初始化后执行一次即可以。

    实现效果:单击行,自动选中或取消勾选。

    通过 table.checkStatus('ifrTbl'); 检查可以获取已勾选数据。

    参考来源:

    https://blog.csdn.net/weixin_44560342/article/details/106946520

    https://www.jb51.net/article/145596.htm

  • 相关阅读:
    17 python学习笔记-异常处理
    二、如何使用postman做接口测试笔记(二)
    16 python学习笔记-使用yagmail模块发送邮件
    15 python学习笔记-多进程multiprocessing
    14 python学习笔记-多线程threading
    用HTML5构建一个流程图绘制工具
    百度地图API绘制带头箭头的折线
    使用JsPlumb绘制拓扑图的通用方法
    SQL Server 2008启用sa账户
    eclipse/ggts/myeclipse清除SVN用户名和密码
  • 原文地址:https://www.cnblogs.com/easter729/p/14658130.html
Copyright © 2020-2023  润新知