Javascript 展开/折叠jQuery树表

Javascript 展开/折叠jQuery树表,javascript,jquery,accordion,treetable,Javascript,Jquery,Accordion,Treetable,我正在使用jQuery中的treetable库,并且我正在尝试一种类似于手风琴的行为,这样当我打开其中一个级别并且它展开时,我想折叠之前打开的另一个级别。我不知道如何使用jQuery树表库实现这种行为 这是我的树表的代码: function buildTreeTable(tree){ $("#example").treetable({ expandable: true, onNodeExpand: nodeExpand, on

我正在使用jQuery中的treetable库,并且我正在尝试一种类似于手风琴的行为,这样当我打开其中一个级别并且它展开时,我想折叠之前打开的另一个级别。我不知道如何使用jQuery树表库实现这种行为

这是我的树表的代码:

function buildTreeTable(tree){

    $("#example").treetable({
        expandable:     true,
        onNodeExpand:   nodeExpand,
        onNodeCollapse: nodeCollapse
    });

function nodeExpand () {
        getNode(this.id); 
 }


function nodeCollapse () {
         console.log("Collapsed: " + this.id);
    }

function getNode(parentNode){
        id = parentNode;
        console.log("The new var is", id);
        console.log("The id of the parent is: ", parentNode);
        var parentNode = $("#example").treetable("node", parentNode);
        $("#example").treetable("unloadBranch", parentNode);
    console.log("parent node",parentNode);
}
提前谢谢

您可以尝试以下方法:

  • 最初折叠Treegrid表中的所有行

  • 然后,在“onExpand”函数中检查前一个节点是否已展开。如果展开,则折叠该节点。(注意:我已将上一个id存储在此处的temp变量中。)

  • 现在,它可以像普通的“折叠和手风琴”一样正常工作

    $(document).ready(function () {
        var temp = "";
        $('.tree').treegrid({
            'expanderExpandedClass': 'glyphicon glyphicon-minus',
            'expanderCollapsedClass': 'glyphicon glyphicon-plus',
            'initialState': 'collapsed',
            **'onExpand': function () {
                if ($(document.getElementById(temp)).treegrid('isExpanded')) {
                    $(document.getElementById(temp)).treegrid('collapse');
                }
                temp = $(this).attr("id");
            }**
        });
    });
    

    主意您可以保留要打开的节点的ID,然后可以折叠sell(),然后展开您在variable.expandNode(ID)中记住的节点ID。