如何在完整的jstree重载事件上绑定回调函数?

Joh*_*Doe 6 javascript jquery jstree

我有一个按钮,重新加载(重新发送一个AJAX请求)jsTree点击一次.

这是我的示例配置代码:

treeContainer.bind("loaded.jstree", function () {
    alert("the tree is loaded");
}).jstree(config);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在第二次,第三次等次点击"重新加载"按钮后,我没有显示警报(包含在回调函数中).我使用了错误的jstree状态事件吗?

总而言之,我希望每次单击"重新加载"按钮时都会执行jsTree回调函数.

我目前正在使用jsTree 1.0-rc1(rev.191).

dea*_*0ck 5

在构建新树之前销毁树也是有效的.

treeContainer.jstree("destroy");
treeContainer.bind("loaded.jstree", function () {
    alert("the tree is loaded");
}).jstree(config);
Run Code Online (Sandbox Code Playgroud)


小智 0

我知道这是一个老问题,但我在 jsTree 3.3.4 中遇到了同样的问题。有效的解决方案是:

treeContainer.bind("refresh.jstree", function (event, data) {
    alert("the tree has been refreshed");
    $(this).jstree("open_all");  //Example: open all nodes after refreshing
})    
Run Code Online (Sandbox Code Playgroud)