是否可以通过按钮打开和关闭整个树?
我知道为了打开树的所有节点和子节点,我必须调用open_all函数,如:$("#tree").jstree('open_all');
为了切换节点:$("#tree").jstree("toggle_node","#1");
其中#1是第一个孩子的id。
但切换功能不会扩展节点的所有子节点。它也没有打开一棵半开的树。我可以在按钮单击时调用open_all和close_all,但是如何找到要调用的方法,如图中是否必须打开或关闭树?
答案 0 :(得分:7)
为整棵树传递-1:
$("#tree").jstree("open_all", -1);
要关闭所有,您可以使用close_all函数:
$("#tree").jstree("close_all", -1);
您还可以使用save_opened
来记住打开的节点,然后使用reopen
功能重新打开它们。
答案 1 :(得分:2)
$("#treepanel").jstree("open_node", $('li[id="' + nodeId + '"]'), function() {
alert("node is added")
});
试试这个
答案 2 :(得分:2)
function toggle(){
var open=true;
$(".jstree").jstree().on('loaded.jstree', function () {
if(open){
$(".jstree").jstree('close_all');
}else{
$(".jstree").jstree('close_all');
}
open=!open;
});
}
答案 3 :(得分:1)
<img onclick="jstreeToggleState()" src='toggle-image.jpg'></img>
<script>
var isTreeOpen = false;
function jstreeToggleState() {
if(isTreeOpen){
$(".jstree").jstree('close_all');
}else{
$(".jstree").jstree('open_all');
}
isTreeOpen =! isTreeOpen;
}
</script>
答案 4 :(得分:0)
我使用了open_node并传递了根节点的标识符来扩展所有子节点。它对我来说很好。
$('#tree').jstree('open_node', '#root');
答案 5 :(得分:0)
捎带@بهناممحمدی回答 这将在按钮上打开和关闭,如下所示:
<button class="product-expand" onclick="toggle()">Toggle Open/Close</button>
var open = false;
function toggle(){
if(open){
$("#prodtree").jstree('close_all');
open = false;
}
else{
$("#prodtree").jstree('open_all');
open = true;
}
}