4

所以我有一个用 JsTree 创建的复选框树。我想要做的是最初将所有复选框设置为禁用,然后我有一个包含 li 标签 ID 的数组。通过浏览表格,我应该启用属于具有特定 ID 的标签的复选框。选中时,树应遵循与默认顺序相同的顺序(当父选中时,启用的子也应选中......等等)。我该如何进行?提前致谢。PS:JsTree 插件很棒。但是它缺乏很多文档。

4

1 回答 1

4

您应该覆盖check_nodeuncheck_node函数的默认行为,并创建自己的禁用节点类型。

编码:

$('#tree').jstree({
    'plugins' : ['themes', 'html_data', 'checkbox', 'types'],
    'checkbox' : {
      'two_state' : true // Nessesary to disable default checking childrens
    },
    "types" : {
      "types": {
        "disabled" : { // Defining new type 'disabled'
          "check_node" : false, 
          "uncheck_node" : false 
        }, 
        "default" : { // Override default functionality
          "check_node" : function (node) {
            $(node).children('ul').children('li').children('a').children('.jstree-checkbox').click();
            return true;
          },
          "uncheck_node" : function (node) {
            $(node).children('ul').children('li').children('a').children('.jstree-checkbox').click();
            return true;
          }
        } 
      }
    }
});

现在要禁用节点,请将属性添加rel="disabled"到其li标签。

这是关于 JSFiddle 的示例。

于 2013-05-23T14:30:24.190 回答