【问题标题】:JSTree, traverse and edit each nodesJSTree,遍历和编辑每个节点
【发布时间】:2016-04-16 21:50:11
【问题描述】:

我是 JSTree 新手,但很想知道如何遍历 jstree 来编辑每个节点? 我写了一个递归函数来遍历每个节点,但奇怪的是,

  1. 我使用 var treeData = 取出数据 $('tree').get_json(true);
  2. 我把这些数据放到函数中,traverse(treeData);

    traverse(treeData){ //在这里做一些编辑工作。 遍历(treeData'schildren); }

有线,遍历完成后,没有任何变化。 我已经将 'check_callback' 设置为 true。

有人可以帮忙吗? 最好的祝福 迈克尔

【问题讨论】:

    标签: javascript jquery edit jstree traversal


    【解决方案1】:

    使用get_json 你只能得到 json 对象。要更改节点,您必须访问它们。您还必须使用redraw 函数根据更改的数据更新节点。

    您的功能示例可能如下所示:

    function traverse(node) {
        node.text += ' too';
        for (var i=0, len = node.children.length; i<len; i++) {
            var childNode = $("#tree").jstree().get_node(node.children[i]);
            traverse(childNode);
        }         
    }
    
    var treeData = data.node;
    traverse(data.node); 
    $('#tree').jstree().redraw(true);
    

    检查小提琴 - Fiddle

    【讨论】:

    • 谢谢小提琴!它确实有帮助,但我没有使用 redraw()。使用 get_node() 获取节点后,我可以直接编辑它。
    • 好吧,如果我注释掉 redraw,树仍然会在后台获得新值,但它们不会出现在页面上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2020-09-09
    • 1970-01-01
    • 2020-01-27
    相关资源
    最近更新 更多