jstree選択中性子ノード選択親ノードをカスケードしない

1173 ワード

詳細
jstree3.3.3デフォルトでは、子ノードを選択すると親ノードが選択されます.この機能を削除するには、ソースコードを次のように変更します.
コメント:
5050~5079行のコード.
 
// apply up
if(s.indexOf('up') !== -1) {
	while(par && par.id !== $.jstree.root) {
		c = 0;
		for(i = 0, j = par.children.length; i < j; i++) {
			c += m[par.children[i]].state[ t ? 'selected' : 'checked' ];
		}
		if(c === j) {
			par.state[ t ? 'selected' : 'checked' ] = true;
			sel[par.id] = true;
			//this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id);
			tmp = this.get_node(par, true);
			if(tmp && tmp.length) {
				tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');
			}
		}
		else {
			break;
		}
		par = this.get_node(par.parent);
	}
}

cur = [];
for (i in sel) {
	if (sel.hasOwnProperty(i)) {
		cur.push(i);
	}
}
this._data[ t ? 'core' : 'checkbox' ].selected = cur;