网上这类信息很少, 这里先埋个坑, 以后再完善.
树的初始化:
$('#jstreeBox').jstree({
"core" : {
"data": {
'url': function (node) { //动态加载数据
return "/api/org/jstree?id=" + node.id;
}
}
},
"plugins" : ['checkbox'],
"checkbox" : {
"tie_selection": false
//, "keep_selected_style": true
//, "three_state": false
}
});
$.jstree.defaults.checkbox.tie_selection
此设置控制复选框是否绑定到常规树选择或复选框插件维护的内部数组。默认为 true.
如果设置为true, jstree不会监听check_node
事件.
官方文档截图如下:
因此, 我们需要在配置中将tie_selection
设置为false
, 然后添加事件.
选中事件(check_node
):
$('#jstreeBox').on('check_node.jstree', function (node, data, event) {
// 写八阿哥...
var checkedIds = $('#jstreeBox').jstree('get_checked');
});
取消选中事件(uncheck_node
):
$('#jstreeBox').on('uncheck_node.jstree', function (node, data, event) {
// 除了八阿哥, 什么也不想写...
});
另外, 还有一个配置:$.jstree.defaults.checkbox.whole_node
, 默认为true
.
如果为true
, 点击节点(非checkbox)后, 相当于点击了checkbox; 如果为false
, 点击后不会触发checkbox.
草草了事.