jstree类型未正确应用

时间:2014-01-24 15:15:01

标签: javascript html jstree

我试图对jstree进行一些主题化,使得图标更适合我的需求。但是,我似乎无法让类型插件完全正常工作。

创建树:

// Create JSTree
$('#listbox').jstree({
    "types": {
        "#": {
            "valid_children": ["floor", "default"],
        },
        "default": {
            "valid_children": ["default", "floor"],
            "icon": "/WACH%20Graphics/images/building.png"
        },
        "floor": {
            "icon": "/WACH%20Graphics/images/floor.png"
        }
    },
    "plugins": ["search", "wholerow", "types"]
});

我的列表实际上是动态生成的。但是,无序列表的结构类似于以下内容:

<ul>
   <li><a href="building.html">Building 1</a>
      <ul>
          <li rel="floor"><a href="floor.html">Floor1</a></li>
          <li rel="floor"><a href="floor.html">Floor1</a></li>
          <li rel="floor"><a href="floor.html">Floor1</a></li>
      </ul>
   </li>
</ul>

我的默认图标被拾取。但我的“地板”类型的图标永远不会被拾取。相反,一切都有默认图标。

这是jstree 3.0.0。

1 个答案:

答案 0 :(得分:8)

JSTree开发人员在他的Github上给出的答案:

不会从rel属性读取类型。尝试使用

<li data-jstree='{ "type" : "floor" }'... 
标记中的

(并将单引号保留在外面,双引号 - 在data-jstree属性中保留)。

请参阅:https://github.com/vakata/jstree/issues/497

在我的情况下,我只是使用类型插件来覆盖图标。事实证明,这可以通过简单地为列表项提供一个带有图标属性集的data-jstree属性来完成。

<li data-jstree='{ "icon" : "icon.png" }'></li>

希望有人在将来发现这有用:)