layui 上下方向键切换选中行状态

本文介绍了一个使用layui框架实现的表格行选中样式更改及通过键盘上下键进行导航的功能。具体包括如何为选中的表格行添加和移除样式,以及如何在表格单元格上触发点击事件,实现键盘导航到下一个或上一个表格行。
var $td ,rowindex;
        table.on('row(test2)', function(obj) {
            //标注选中样式
            obj.tr.addClass('layui-table-click layui-bg-green').siblings().removeClass('layui-table-click layui-bg-green');
            var tr = obj.tr; //获得当前行 tr 的DOM对象
            rowindex = Number($(tr).attr("data-index"))+1;//这里是当前行号
        })
        $(document).on('click', '.layui-table-cell', function (ef) {
            var checkStatusdetail = table.checkStatus('lpddetails');
            if (checkStatusdetail.data.length == 0){
                return;
            }
            var $el = $(ef.target);
            $td = $el.parents('td')
        });
        document.onkeydown=function(event){
            var e = event || window.event || arguments.callee.caller.arguments[0];
            var checkStatusdetail = table.checkStatus('lpddetails');
            if (checkStatusdetail.data.length == 0){
                return;
            }
            if(e && e.keyCode==40){ //下

                var $nextTr = $td.parent('tr').next();

                if($nextTr.length) {
                    $nextTr.find('td').eq($td.index()).trigger('click');
                    $td= $nextTr.find('td');
                }else {
                    $nextTr = $td.parent('tr').siblings(":first");
                    if($nextTr.length) {
                        $nextTr.find('td').eq($td.index()).trigger('click');
                        $td = $nextTr.find('td');
                    }
                }
            }
            if(e && e.keyCode==38){ // 上
                //alert('38=上键');
                var $nextTr = $td.parent('tr').prev();
                if($nextTr.length) {
                    $nextTr.find('td').eq($td.index()).trigger('click');
                    $td= $nextTr.find('td');
                }else {
                    $nextTr = $td.parent('tr').siblings(":last");
                    if($nextTr.length) {
                        $nextTr.find('td').eq($td.index()).trigger('click');
                        $td = $nextTr.find('td');
                    }
                }
            }

        };

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值