javascript - 如何判断 jsTree 是否已完全加载?

标签 javascript jstree

我正在尝试编写一个在 jsTree 上打开特定节点的函数,但我遇到了一个问题,即在从 ajax 调用加载我的基础树之前执行该函数。我如何判断我的 jstree 数据是否已加载并等待加载完成。以下是我尝试使用的功能。

function openNodes(tree, nodes) {
    for (i in nodes) {
        $('#navigation').jstree("open_node", $(nodes[i]));
    }
}

我正在使用以下命令加载初始树

$("#navigation").jstree({
    "json_data": {
        "ajax": {
            "url": function(node) {
                var url;
                if (node == -1) {
                    url = "@Url.Action("BaseTreeItems", "Part")";
                } else {
                    url = node.attr('ajax');
                }
                return url;
            },
            "dataType": "text json",
            "contentType": "application/json charset=utf-8",
            "data": function(n) { return { id: n.attr ? n.attr("id") : 0, ajax: n.attr ? n.attr("ajax") : 0 }; },
            "success": function() {
            }
        }
    },
    "themes": { "theme": "classic" },
    "plugins": ["themes", "json_data", "ui"]
});

最佳答案

在元素上调用 .jstree() 之前,您可以将回调绑定(bind)到 before.jstreeloaded.jstree 事件:

$(selector)
.bind('before.jstree', function(e, data) {
    // invoked before jstree starts loading
})
.bind('loaded.jstree', function(e, data) {
    // invoked after jstree has loaded
    $(this).jstree("open_node", $(nodes[i]));
})
.jstree( ... )

关于javascript - 如何判断 jsTree 是否已完全加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11452205/

相关文章:

javascript - jstree 对从右到左语言的支持不起作用

javascript - jstree Angular Directive(指令)中不同节点的自定义上下文菜单

javascript - 如何更改jstree中的图标?

asp.net-mvc - jQuery JsTree 和 JSON 错误处理

javascript - 如何在这样的函数中操作变量?

php - 使用 php 抓取网站(javascript 网站)

javascript - 如何从 javascript 获取 Google Chrome 中已安装和/或正在运行的扩展列表

javascript - SignalR 2.0 - 无需代理即可访问集线器

javascript - JsTree 速度问题

javascript - 使用水平滚动将 Div 位置从绝对位置更改为固定位置