我知道有一個名爲jquery.tree.checkbox.js的jsTree插件。 ,使樹節點可多檢查。可以jsTree使用無線電檢查
我只是想知道是否有一個插件raido檢查樹節點? 或我如何修改jquery.tree.checkbox.js來實現它?
我知道有一個名爲jquery.tree.checkbox.js的jsTree插件。 ,使樹節點可多檢查。可以jsTree使用無線電檢查
我只是想知道是否有一個插件raido檢查樹節點? 或我如何修改jquery.tree.checkbox.js來實現它?
這可以簡單地通過添加屬性
rules:{
multiple : false
}
樹的結構內進行。 這將使無法選擇多個條目。
單選按鈕選項仍未釋放,因此您必須將chceckbox選項更改爲單選。
bind('check_node.jstree', function(e, data) {
var currentNode = data.rslt.obj.attr("id");
$("#tree").jstree("get_checked",null,true).each
(function() {
if(currentNode != this.id){
jQuery.jstree._reference($("#tree")).uncheck_node('#'+this.id);
}
});
});
使用jsTree版本3.2.1的複選框插件,可以模仿單選按鈕的行爲處理 '改爲' 事件如下:
//jstree configuration:
'checkbox': {
three_state: false, //required for the cascade none to work
cascade: 'none' //no auto all_children<->parent selection
},
//...
var resetting = false;
$('#tree').on('changed.jstree', function (e, data) {
if (resetting) //ignoring the changed event
{
resetting = false;
return;
}
if ($("#multiselect").is(':checked') == false && data.selected.length > 1) {
resetting = true; //ignore next changed event
data.instance.uncheck_all(); //will invoke the changed event once
data.instance.check_node(data.node/*currently selected node*/);
}
});
的jsfiddle:JSTree radiobutton behaviour example using checkbox plugin
@Asaf的答案似乎不再適用於2016年版本3.3.1。您現在需要在上設置:
$jstree.jstree({
core: {
multiple: false,
...
}
});
設置multiple:false
,將仍允許級聯,所以你需要把它們關掉了。
版本3.3.3
$(".tree").jstree({
plugins: ["checkbox"],
core: {
data: ...,
multiple: false
},
checkbox: {
three_state: false,
cascade: "none"
}
});
這爲我工作。 – 2016-12-14 09:20:35