2010-05-04 63 views
2

我知道有一個名爲jquery.tree.checkbox.js的jsTree插件。 ,使樹節點可多檢查。可以jsTree使用無線電檢查

我只是想知道是否有一個插件raido檢查樹節點? 或我如何修改jquery.tree.checkbox.js來實現它?

回答

3

這可以簡單地通過添加屬性

rules:{ 
      multiple : false 
      } 

樹的結構內進行。 這將使無法選擇多個條目。

2

單選按鈕選項仍未釋放,因此您必須將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); 
      } 
     }); 
}); 

請參閱本http://jsfiddle.net/bwTrP/1/

1

使用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

3

@Asaf的答案似乎不再適用於2016年版本3.3.1。您現在需要在上設置:

$jstree.jstree({ 
    core: { 
     multiple: false, 
     ... 
    } 
}); 
+0

這爲我工作。 – 2016-12-14 09:20:35

2

設置multiple:false,將仍允許級聯,所以你需要把它們關掉了。

版本3.3.3

$(".tree").jstree({ 
    plugins: ["checkbox"], 
    core: { 
     data: ..., 
     multiple: false 
    }, 
    checkbox: { 
     three_state: false, 
     cascade: "none" 
    } 
});