2015-11-07 134 views
3

如何在jstree中检查子节点时如何检查所有父节点?在jstree中选择子节点时检查所有父节点

$('#select_cats').jstree({ 
      "core" : { 
       "themes" : { 
        "responsive": false 
       }    
      }, 
      "types" : { 
       "default" : { 
        "icon" : "fa fa-folder icon-state-warning icon-lg" 
       }, 
       "file" : { 
        "icon" : "fa fa-file icon-state-warning icon-lg" 
       } 
      }, 
      "checkbox": { 
       "three_state": false 
      }, 
      "plugins": ["types", "checkbox"] 
     }); 
+0

您是否使用复选框插件?另外,你可以给我们'#select_cats'的HTML或者一个小提琴吗? – Anders

回答

0

如果你"three_state"属性设置为true你会得到所有家长到根检验,喜欢这里 - JS Fiddle

如果你想多个项目同时进行选择,使得家长将转向充分选择的状态,加"multiple" : true到树core配置

+1

当“three_state”属性设置为true时,则在选择父节点上,它的所有子节点也会被检查。我不想要。 其次,我希望父节点完全选中,如果任何一个孩子被选中。 –

+0

因此,如果任何子项被选中,你希望父节点完全被选中。如果父母被检查会怎样?没有一个孩子节点应该被选中,只是家长保持选择? –

0

您可以使用此代码:

var selected = instance.get_selected(), i, j; 
for(i = 0, j = selected.length; i < j; i++) { 
    selected = selected.concat(instance.get_node(selected[i]).parents); 
} 
selected = $.vakata.array_unique(selected); 
selected.pop('#'); 

所有具有父项的选定节点都在selected变量中。
https://groups.google.com/forum/#!topic/jstree/6rICTokWciU