5

我一直在我正在从事的项目中使用“Fancytree”,直到今天我都对它非常满意。我需要在树中的某些节点上显示不同的图标,并且到目前为止,还无法让它们出现在树上。

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

[{
    "title": "Inventory",
    "key": "DocFolders/1026",
    "folder": true,
    "data": {
        "icon": "LockedFolder.gif",
        "isLocked": true
    }
}, {
    "title": "Telemetry",
    "key": "DocFolders/1027",
    "folder": true,
    "data": {
        "icon": "LockedFolder.gif",
        "isLocked": true
    }
}, {
    "title": "Well Documents",
    "key": "DocFolders/1028",
    "folder": true,
    "data": {
        "icon": "LockedFolder.gif",
        "isLocked": true
    },
    "expanded": true,
    "children": [{
        "title": "4-13 Spectrum Core PG&E Data.xlsx",
        "key": "SpectrumDocs/961"
    }]
}, {
    "title": "Well Photos",
    "key": "DocFolders/1029",
    "folder": true,
    "data": {
        "icon": "LockedFolder.gif",
        "isLocked": true
    }
}]

以下是加载树的 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/”。之后工作正常。

4

1 回答 1

3

好吧,几个小时后,我已经设法回答了我自己的问题。感觉很傻,但这些事情经常归结为这样的事情。原来我的问题出在树的“imagePath”选项中。路径名称必须包含以下正斜杠。所以解决方法是让 imagePath 成为“skin-win8/”。之后工作正常。

于 2014-10-03T14:30:08.190 回答