jstree中添加checkbox,需要在初始化時設置plugins屬性:
$('#DpTree').data('jstree', false).empty().jstree({ 'core': { 'data': data.data, "check_callback": true, 'multiple': false, }, "force_text": true, plugins: ["sort", "types", "checkbox", "themes", "html_data"], "checkbox": { "keep_selected_style": false,//是否默認選中 "three_state": false,//父子級別級聯選擇 "tie_selection": false }, });
eg:設置three_state為true時,選擇所有子節點后父節點會自動選擇。
我的需求是選擇一個節點綁定給其他數據,節點只能選擇一個,且不可重復。
故,添加如下事件,選擇節點后遍歷所有選中的節點,更改其checkbox屬性。
$('#DpTree').on('check_node.jstree', function(event, obj) { var ref = $('#DpTree').jstree(true); var nodes = ref.get_checked(); //使用get_checked方法 $.each(nodes, function(i, nd) { if (nd != obj.node.id) ref.uncheck_node(nd); }); });
只能選擇一個節點,可用於類似下拉框中的選擇。