easyUI树点击树节点出现异常

发布于 2022-09-06 19:24:40 字数 3033 浏览 25 评论 0

我的功能是:在点击右箭头时,把选中的菜单生成一个新树放到右边.现在的问题是:刷新页面后,点击第一下,在控制台打印addNode,数据没有问题,但是点击第二下就抛出以下异常

Uncaught TypeError: Cannot read property 'checkState' of null
    at _10c (jquery.easyui.min.js:2061)
    at HTMLUListElement.<anonymous> (jquery.easyui.min.js:1814)
    at HTMLUListElement.dispatch (jquery-3.1.1.min.js:3)
    at HTMLUListElement.q.handle (jquery-3.1.1.min.js:3)
_10c @ jquery.easyui.min.js:2061
(anonymous) @ jquery.easyui.min.js:1814
dispatch @ jquery-3.1.1.min.js:3
q.handle @ jquery-3.1.1.min.js:3

以下是第一下点击树中的节点的信息

clipboard.png

以下是第二下点击树中的节点(另一个节点)

clipboard.png

界面截图(比如我第一下点击组织管理,第二下点击菜单管理,点击第一下一切正常,点击第二下就抛异常)

clipboard.png

下面是加载树的代码.

$('#tree').tree({
        url: urlg2 + '/selectMenuForComboBox',
        method: 'POST',
        animate: true,
        checkbox: true,
        onCheck: function (node, checked) {
            
            var checkedNode = $('#tree').tree('getChecked', ['checked', 'indeterminate']);
            console.log(checkedNode);
            var level1 = new Array();
            for (var i = 0; i < checkedNode.length; i++) {
                if (checkedNode[i].level == 1 && checkedNode[i].checkState != "unchecked") {
                    level1.push(checkedNode[i]);
                }
            }

            for (var i = 0; i < level1.length; i++) {
                var twoChildren = level1[i].children;
                var level2 = new Array();
                if (twoChildren.length > 0) {

                    for (var j = 0; j < twoChildren.length; j++) {

                        if (twoChildren[j].checkState != "unchecked") {
                            var threeChildren = twoChildren[j].children;
                            if (threeChildren.length > 0) {
                                var level3 = new Array();
                                for (var k = 0; k < threeChildren.length; k++) {
                                    $.each(checkedNode, function (index, node) {
                                        if (node == threeChildren[k]) {
                                            level3.push(threeChildren[k]);
                                        }
                                    });
                                }
                                twoChildren[j].children = level3;
                            }
                            level2.push(twoChildren[j]);
                        }

                    }
                    level1[i].children = level2;
                }
            }
            addNode = level1;

        }
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文