如何从动态数据中签入 jstree?

Posted

技术标签:

【中文标题】如何从动态数据中签入 jstree?【英文标题】:How to checked in jstree from a dynamic data? 【发布时间】:2017-03-14 08:53:29 【问题描述】:

我在https://github.com/vakata/jstree 使用Jstree,我已经成功加载了树结构,现在我想从数组数据中绑定选中的复选框。默认情况下,有一个id的节点,我会检查数组中节点的id,如果相同,则选中复选框。这是代码sn-p

    $('#jstree_demo_div').jstree(
                'core': 
                    'data':
                        [
                             "id": "A1", "parent": "#", "text": "Simple root node" ,
                             "id": "A2", "parent": "#", "text": "Root node 2" ,
                             "id": "A3", "parent": "A2", "text": "Child 1" ,
                             "id": "A4", "parent": "A2", "text": "Child 2" ,
                             "id": "A5", "parent": "A1", "text": "Root Child 1" ,
                             "id": "A6", "parent": "A1", "text": "Root Child 2" ,
                             "id": "A7", "parent": "A5", "text": "Sub 1" ,
                             "id": "A8", "parent": "A5", "text": "Sub 2" 
                        ]
                ,
                "plugins": ["checkbox"]
            );

  $(window).load(function () 
             var array_node = ['A3','A4','A8'];
                for (var i = 0; i < array_node.length; i++) 
                    $('#jstree_demo_div').jstree("select_node", array_node[i]);
                
            );   

虽然没有发生错误,但似乎它不起作用

【问题讨论】:

【参考方案1】:

哦,我很抱歉,我有这个答案,只需将 $(window).load(function () 替换为某个事件 button click。它正在工作。

【讨论】:

我认为ready.jstree 事件会是一个更好的选择:$("#jstree_demo_div").jstree(...).on("ready.jstree", function(e, data) ...)

以上是关于如何从动态数据中签入 jstree?的主要内容,如果未能解决你的问题,请参考以下文章

jstree做动态树,json格式传输,存储过程获得datatable之类,不知道如何把datatable转换为需要的json数据格式

JSTREE动态加载子节点

jstree插件的使用(进阶)——动态json数据创建树

用于动态创建 jstree 节点的有效 json

PHP:如何修改动态多维数组

JSTree在MVC4中从视图调用到控制器