我正在使用jsTree。我想将子节点选择限制为4(要么不允许用户选择4个以上的节点或禁用所有复选框)。我正在使用无效的选择限制。我怎样才能做到这一点?
$("#mytree").jstree({
"plugins" : [ "themes","html_data", "ui", "crrm","checkbox" ],
"html_data" : {
// ...
},
"checkbox": {
"keep_selected_style": false
},
"ui": {
"select_limit": 4,
},
// ...
});
答案 0 :(得分:0)
按照传统方法,您可以按如下方式完成此任务
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(isViewWithCatalog ? R.layout.productlistview : R.layout.productgrids, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
return rcv;
}
答案 1 :(得分:0)
我自己就碰到了这个。
如果您正在使用jsTree v3 +,那么" UI"插件不再存在,因此" select_limit"属性。 This is the current list of plugins that are available.
如果您只想一次限制一个选项,核心模块会有一个"多个"您可以根据需要设置为true / false的属性。但是如果你想将它限制为四个选择,那么the author recommended using the "conditional select" plugin。
答案 2 :(得分:0)
我也有同样的需求,并且能够用一些Java脚本找到解决方案。 我想检查3个节点的限制,所以我这样做了:
$('#jstree')
// listen for event
.on('changed.jstree', function (e, data) {
var i, j, r = [];
var lenght = data.selected.length;
for(i = 0, j = data.selected.length; i < j; i++) {
if(data.instance.get_node(data.selected[i]).type.localeCompare("child") != 0) {
lenght -= 1;
}
}
if(lenght > 3) {
if(data.instance.get_node(data.selected[data.selected.length-1]).type.localeCompare("child") == 0) {
$("#jstree").jstree("uncheck_node", data.instance.get_node(data.selected[data.selected.length-1]).id);
} else {
$("#jstree").jstree("uncheck_node", data.instance.get_node(data.selected[data.selected.length-2]).id);
}
}
})
// create the instance
.jstree({
'core' :
...