检查所有节点是否展开 - jstree

Check if all nodes are expanded - jstree

我正在使用 jstree 库,我正在尝试了解如何在展开一个节点后检查树的所有节点是否展开。我想使用此功能来设置开关 on/off 天气所有节点展开或所有节点不展开。

如果您想检查是否所有节点都处于折叠状态或至少一个节点处于展开状态,那么您可以使用下面的检查。

$('#btnCheck').click(function () {
    $('#status').text("No - all nodes are collapsed");
    if($('#SimpleJSTree li.jstree-open').length)
    {
        $('#status').text("Yes - there is expanded node");
    }
 });

其中 jsTree id 是 SimpleJSTree 并且 jstree-open class 被用于扩展节点。

完整例子可以参考https://everyething.com/jsTree-check-for-any-expanded-node

实际上有一个使用 jsTree after_open 事件的解决方案(我尝试使用 show_all 事件但对我不起作用):

http://jsfiddle.net/softxide/1fnbzjjf/15/

$('#container').on('after_open.jstree', function(e, data) {
        var closed_count = $(".jstree-closed").length;
        if(closed_count == 0)
        {
            alert("all opened");
        }

             }).jstree();