easyui中combotree只能选子选项,父级不被选中,并且展开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui中combotree只能选子选项,父级不被选中,并且展开相关的知识,希望对你有一定的参考价值。

参考技术A 我们打开官网的例子可以看到,当我们点击父节点的时候,父节点被选中到结果里面了。然而难免会遇到不选父节点,只是展开的情况。

于是开始搜索是否有和我情况相同的做法。幸好,果然有 easyui中combotree只能选子选项,父级不被选中 。于是动手尝试吧,据这篇文章所说,先增加了 onBeforeSelect的回调,如果我的数据结构中, type==0 (父节点的数据),就 return false ;

然而结果只是不赋值到结果集合,我需要不仅仅是不选中,还要展开。
经过各种尝试,我只能另辟蹊径,我发现当多选,并且 onlyLeafCheck:true 的情况下,点击父节点是没有任何反应的,这样就不会选中父节点的值,下面我希望点击父节点他能够展开关闭,经过观察发现可以通过触发旁边的小箭头来实现。

至此我的需求实现了,但是由于用了复选的,多了个问题,就是可以选中多个值,最后我们来整理下结果就好了,永远取最后一个值。

easyui combotree不让父级选中

easyui combotree不让父级选中?

<ul id="combotree"></ul>
 $(function () {
        $("#combotree").combotree({
            width: 300,
            data: [{
                "id": 1,
                "text": "My Documents",
                "children": [{
                    "id": 11,
                    "text": "Photos",
                    "state": "closed",
                    "children": [{
                        "id": 111,
                        "text": "Friend"
                    }, {
                        "id": 112,
                        "text": "Wife"
                    }, {
                        "id": 113,
                        "text": "Company"
                    }]
                }, {
                    "id": 12,
                    "text": "Program Files",
                    "children": [{
                        "id": 121,
                        "text": "Intel"
                    }, {
                        "id": 122,
                        "text": "Java",
                        "attributes": {
                            "p1": "Custom Attribute1",
                            "p2": "Custom Attribute2"
                        }
                    }, {
                        "id": 123,
                        "text": "Microsoft Office"
                    }, {
                        "id": 124,
                        "text": "Games",
                        "checked": true
                    }]
                }, {
                    "id": 13,
                    "text": "index.html"
                }, {
                    "id": 14,
                    "text": "about.html"
                }, {
                    "id": 15,
                    "text": "welcome.html"
                }]
            }]
            ,
            method: ‘get‘,
            ines: true,
            multiple: true,
            onBeforeCheck: function (node) {
                //alert($("#combotree").combotree("tree").tree(‘isLeaf‘, node.target));
                if (!$("#combotree").combotree("tree").tree(‘isLeaf‘, node.target)) {
                    return false;
                }
            }
        })
    })

关键代码:

onBeforeCheck: function (node) {
                //alert($("#combotree").combotree("tree").tree(‘isLeaf‘, node.target));
                if (!$("#combotree").combotree("tree").tree(‘isLeaf‘, node.target)) {
                    return false;
                }
            }

 

技术交流QQ群:15129679

以上是关于easyui中combotree只能选子选项,父级不被选中,并且展开的主要内容,如果未能解决你的问题,请参考以下文章

jquery easyui中 combotree的使用

Easyui控制combotree只能选择叶子节点

jQuery easyUI combotree清除选择

Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

EasyUI——combotree

easyui.combotree.search.js