我正在使用jsTree。如果我展开/打开一个分支,我希望其余的(已打开的)分支关闭/折叠。
我该怎么做?
答案 0 :(得分:3)
使用节点打开事件查看树并关闭其他节点。我认为你想继续打开刚刚扩展的节点及其所有父节点。
像这样:
$('#tree').on('open_node.jstree', function (e, data) {
var nodesToKeepOpen = [];
// get all parent nodes to keep open
$('#'+data.node.id).parents('.jstree-node').each(function() {
nodesToKeepOpen.push(this.id);
});
// add current node to keep open
nodesToKeepOpen.push( data.node.id );
// close all other nodes
$('.jstree-node').each( function() {
if( nodesToKeepOpen.indexOf(this.id) === -1 ) {
$("#tree").jstree().close_node(this.id);
}
})
})
请参阅演示JS Fiddle