自定义节点图标在Fancytree中不起作用

时间:2014-06-24 18:02:44

标签: jquery css json fancytree

我一直在使用“Fancytree”参与我正在开展的一个项目,并且直到今天一直很满意。我需要在树中的某些节点上显示不同的图标,并且到目前为止,无法让它们显示在树上。

我在JSON字符串中指定自定义节点图标,我用它来加载树:

[{ “标题”: “清单”, “关键”: “DocFolders / 1026”, “文件夹”:真, “数据”:{ “图标”: “LockedFolder.gif”, “isLocked”:真} },{ “标题”: “遥测”, “关键”: “DocFolders / 1027”, “文件夹”:真, “数据”:{ “图标”: “LockedFolder.gif”, “isLocked”:真}}, {“title”:“Well Documents”,“key”:“DocFolders / 1028”,“folder”:true,“data”:{“icon”:“LockedFolder.gif”,“isLocked”:true},“展开“:true,”children“:[{”title“:”4-13 Spectrum Core PG& E Data.xlsx“,”key“:”SpectrumDocs / 961“}]},{”title“:”Well Photos“ “键”: “DocFolders / 1029”, “文件夹”:真, “数据”:{ “图标”: “LockedFolder.gif”, “isLocked”:真}}]

以下是加载树的javascript代码:

 $('#locDocTree').fancytree({
    source: fldrObj,
    imagePath: 'skin-win8',
    activate: function (event, data) {
        if (data.node.folder) {
            $('[id$=txtSelFldrKey]').val(data.node.key);
            $('[id$=txtDownloadDocId]').val('');
        }
        else {
            $('[id$=txtDownloadDocId]').val(data.node.key);
            $('[id$=txtSelFldrKey]').val('');
        }
    }
});

“LockedFolder.gif”文件位于“skin-win8”文件夹中,如果我从JSON中取出“icon”:“LockedFolder.gif”,则树可以使用默认图像呈现。指定icon属性后,树仍会呈现,但文件夹图标没有图像。

以下是引用的脚本&页头中的css文件。

<link href="fancytree/skin-win8/ui.fancytree.css" rel="stylesheet" type="text/css">
<script src="Scripts/json2.js" type="text/javascript"></script>
<script src="Scripts/jquery-2.1.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.10.4.js" type="text/javascript"></script>
<script src="fancytree/jquery.fancytree.js" type="text/javascript"></script>

似乎这应该很简单,但对我来说是一个脑筋急转弯......

好吧,几个小时后,我已经设法回答了我自己的问题。感觉非常愚蠢,但这些事情常常归结为这样的事情。事实证明我的问题出现在树的“imagePath”选项中。路径名必须包含以下正斜杠。所以修复是让imagePath成为“skin-win8 /”。之后工作正常。

1 个答案:

答案 0 :(得分:2)

嗯,几个小时之后,我已经设法回答了我自己的问题。感觉非常愚蠢,但这些事情常常归结为这样的事情。事实证明我的问题出现在&#34; imagePath&#34;树的选项。路径名必须包含以下正斜杠。所以修复是让imagePath成为&#34; skin-win8 /&#34;。之后工作正常。