如何仅在叶节点处创建一个带复选框的复选框树

时间:2014-01-19 12:38:08

标签: javascript jquery jquery-ui tree jstree

根据 jstree ,默认情况下,所有节点都包含父节点和子节点旁边的复选框。

jstree

但我想要这样的事情jqueryeasyUI tree 其中有级联和叶节点检查选项。

编辑:  下面给出了一个样本。

<div id="jstree">
    <!-- in this example the tree is populated from inline HTML -->
    <ul>
      <li class="node" >Root node 1
        <ul>
          <li id="child_node_1">Child node 1</li>
          <li>Child node 2</li>
        </ul>
      </li>
      <li class="node" >Root node 2</li>
    </ul>
  </div>
  <button>demo button</button>

  <!-- 4 include the jQuery library -->
  <script src="dist/libs/jquery.js"></script>
  <!-- 5 include the minified jstree source -->
  <script src="dist/jstree.min.js"></script>
  <script>
  $(function () {
    // 6 create an instance when the DOM is ready
  $("#jstree").jstree({
      "checkbox": {
          "keep_selected_style": false
      },
      "plugins": ["checkbox"]
  });

  $(".node").find('> a > .jstree-checkbox').remove()
});
  </script>

现在我可以在折叠时删除父节点的复选框,但在展开它时会创建旁边的复选框。

任何人都知道jstree是否提供仅检查叶节点而不是级联检查的选项? 如果是这样,请分享想法。

2 个答案:

答案 0 :(得分:2)

我认为this post的最佳解决方案如下

CSS解决方案没问题

#id-here .jstree-open > .jstree-anchor > .jstree-checkbox,
#id-here .jstree-closed > .jstree-anchor > .jstree-checkbox { display:none; }

答案 1 :(得分:0)

当我修改jstree.min.js时 three_state:!1,来自

three_state:!0 它奏效了。

文件说

/ **          *一个布尔值,指示单击节点上的任何位置是否应该单击复选框。默认为true。          * @name $ .jstree.defaults.checkbox.whole_node          * @plugin复选框          * /