在使用jsTree是,通常为了方便用户勾选会使用 three_state 的默认设置(true),若是 three_state:true jsTree会将checkbox.cascade默认为javascript
// 源码片断
if(this.settings.checkbox.three_state) {
this.settings.checkbox.cascade = 'up+down+undetermined';
}
复制代码
可是调用check_node()的时候,若是节点有子节点会把子节点一块儿选中. 能够临时将cascade设置为空,而后设置完勾选以后在设置为up+down+undeterminedjava
var tree = $('selector').jstree(true);
// 暂时禁用级联,防止选中父节点后全选子节点
var cascade = tree.settings.checkbox.cascade;
tree.settings.checkbox.cascade = '';
if (typeof nodeIds === 'string') {
nodeIds = nodeIds.split(',');
}
tree.check_node(nodeIds);
// 恢复级联
tree.settings.checkbox.cascade = cascade;
复制代码
若是初始化是将 three_state 设置为 false ,后面修改 checkbox.cascade 会不生效node