【问题标题】:jsTree: with lazy loading the plugin "dnd" is not workingjsTree:延迟加载插件“dnd”不起作用
【发布时间】:2015-09-25 13:25:57
【问题描述】:

我在我的网络应用程序中使用 jsTree(最新版本)。我有很多节点要显示在树中,所以我使用延迟加载,否则我会遇到超时。 加载树时,用户可以从第二棵树中选择值并将它们移动到延迟加载的树中(jsTree 插件“dnd”)。两棵树都安装了 jsTree 插件“dnd”。但是我无法将元素拖放到延迟加载的树中,当我尝试这样做时,要删除的节点有一个带有红叉的图标(指示:此处不允许)。

这是延迟加载树的代码:

$('#target_tree').jstree({
  'core' : {
    'data' : {
      "url" : "get_current_hierachy",
      "data" : function (node) {
        return {'p_parent_id': node.id};
      },
      "dataType": "json",
      "check_callback": true
    }
  },
  "plugins" : ["dnd"]
});

当我在没有延迟加载的情况下在第一棵树中加载一些数据时,拖放操作按预期工作。 当我使用延迟加载在第一棵树中加载数据时,拖放不再起作用。

任何帮助将不胜感激。

【问题讨论】:

    标签: jstree jstree-dnd


    【解决方案1】:

    试试这个...

    $(document).ready(function () {
    
        $('#target_tree').jstree({
    
            'core': {
                'data': {
    
                    "url": function (node) {
                        var url;
                        if (node.id == '#') {
                            url = "getRootNode";
                        } else {
                            var id = $(node).data("id");
                            url = "getChildNode?nodeid=" + id;
                        }
                        return url;
                    },
                    "data": function (node) {
                        return { "id": node.id };
                    },
                    "type": "GET",
                    "dataType": "json",
                    "contentType": "application/json charset=utf-8",
                },
                'check_callback': true,
            },
            "plugins": ["dnd"]
    
        });
    });
    

    我觉得你需要准备url

    【讨论】:

    • 不,延迟加载运行良好!它是根节点还是子节点的决定是在过程“get_current_hierachy”本身中完成的。正如我所描述的,“dnd”插件不再工作,我无法将节点从一棵树移动到另一棵树。
    猜你喜欢
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多