jQuery EasyUI CheckBoxTree的级联选中

需求:子结点选中,父节点随之选中,父节点取消,子节点随之取消

代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="js/themes/default/easyui.css" rel="stylesheet" />
    <link href="js/themes/icon.css" rel="stylesheet" />
    <script src="js/jquery-1.8.0.min.js"></script>
    <script src="js/jquery.easyui.min.js"></script>
    <script src="js/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript">
        var data = [{
            "id": 1,
            "text": "系统",
            "children": [{
                "id": 11,
                "text": "用户管理",
                "children": [{
                    "id": 19,
                    "text": "增加"
                }, {
                    "id": 3,
                    "text": "修改"
                }, {
                    "id": 5,
                    "text": "删除"
                }]
            }, {
                "id": 12,
                "text": "角色管理",
                "children": [{
                    "id": 13,
                    "text": "增加"
                }, {
                    "id": 3,
                    "text": "修改"
                }, {
                    "id": 5,
                    "text": "删除"
                }]
            }]
        }, {
            "id": 2,
            "text": "其他",
            "state": "closed"
        }];

        $(function () {
            $("#tt").tree({
                data: data,
                checkbox: true,
                cascadeCheck: false,
                onCheck: function (node, checked) {
                    if (checked) {
                        var parentNode = $("#tt").tree('getParent', node.target);
                        if (parentNode != null) {
                            $("#tt").tree('check', parentNode.target);
                        }
                    } else {
                        var childNode = $("#tt").tree('getChildren', node.target);
                        if (childNode.length > 0) {
                            for (var i = 0; i < childNode.length; i++) {
                                $("#tt").tree('uncheck', childNode[i].target);
                            }
                        }
                    }
                }
            });
        });

        function getChecked()
        {
            var arr = [];
            var checkeds = $('#tt').tree('getChecked', 'checked');
            for (var i = 0; i < checkeds.length; i++) {
                arr.push(checkeds[i].id);
            }
            alert(arr.join(','));
        }

    </script>
</head>
<body>
    <ul id="tt"></ul>
    <input type="button" value="获取选中" onclick="getChecked()" />
</body>
</html>

如图:

posted on   wdcwy  阅读(359)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示