【问题标题】:Jstree drag and drop orderingJstree拖放排序
【发布时间】:2014-01-30 13:55:29
【问题描述】:

我有一棵树,它按节点数据中的序号排序。但是,我试图在树中拖放节点后对节点进行排序。我不能成功更新订单,但节点没有在树上移动。在我再次将节点拖动到该位置后它可以工作。

 $("#projectIssues").jstree({
        sort: treeSortFunction,
        json_data: { data: nodes },
        ui: { "select_limit": 1 },
        themes: { url: themeUrl },
        core: { "check_callback": true },
        plugins: ["themes", "json_data", "ui", "sort", "dnd", "crrm"],
        crrm: {
            "move": {
            "default_position": "inside",
            "check_move": function(n) {
                    return Project.ViewModel.DragDropNode(n);
                }
            }
        }
    }).bind("move_node.jstree", function (e, d) {
        console.log(d.rslt.cp);
        var node = _tree._get_node(d.rslt.o);
        node.data("OrderNo", d.rslt.cp);
        console.log("Current Node Order:" + node.data("OrderNo"));
        Project.ViewModel.UpdateNodeOrder(d.rslt.np, d.rslt.o);

    }).bind("dblclick.jstree", doubleClickNode)
    .bind("select_node.jstree", function (event, result) {
        var node = result.rslt.obj;
        Project.ViewModel.UpdateEditor(node);
    });

更新订单号的方法

 self.UpdateNodeOrder = function (parentNode, curNode) {
    var childNodes = _tree._get_children(parentNode);
    var node = _tree._get_node(curNode);
    for (var i = node.data("OrderNo"); i <= childNodes.length-1; i++) {
        var n = _tree._get_node(childNodes[i]);
        if (n != undefined) {
            if (node.data("Name") !== n.data("Name")) {
                n.data("OrderNo", i + 1);
            }
            console.log(n.data("Name") + " " + n.data("OrderNo"));
        }
    }
};

【问题讨论】:

    标签: jquery jstree


    【解决方案1】:

    添加了 _tree.sort(parentNode.children("ul") 做到了这一点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多