0

在树完成加载恢复到之前的状态后,如何在 jsTree 中运行代码块?(我正在使用 cookie 插件。)

4

1 回答 1

0

好吧,看来我有一个实用的解决方法......

通过绑定select_node事件而不是open_node事件,只有在最终节点打开后才能执行操作;这是因为在树完全重新加载后,只有先前选择的节点(在浏览器刷新之前)被选中。

这是绑定代码。试试看,你会明白我的意思:

    .bind("open_node.jstree", function(e, data){
        console.log('tree opened node ' + data.rslt.obj.attr("url"));

        var selectedNode = $('#tree').jstree("get_selected");

        if(selectedNode != null)
        {
            console.log(selectedNode.attr('id'));
        }
    })
    .bind("select_node.jstree", function (e, data) {
        var a = $.jstree._focused().get_selected();

        console.log('tree selected node ' + data.rslt.obj.attr("url"));

        var selectedNode = $('#tree').jstree("get_selected");

        if(selectedNode != null)
        {
            console.log(selectedNode.attr('id'));
        }
    })
于 2013-10-07T15:59:18.543 回答