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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM