我一直在我正在从事的元素中使用“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”,则树可以使用默认图像正常渲染。当指定图标属性时,树仍然呈现,但没有文件夹图标的图像。
以下是页眉中引用的脚本和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/”。之后工作正常。
最佳答案
嗯,几个小时后,我设法回答了我自己的问题。感觉很傻,但这些事情常常归结为这样的事情。原来我的问题出在树的“imagePath”选项中。路径名必须包含一个正斜杠。所以解决方法是使 imagePath 为“skin-win8/”。之后工作正常。
关于jquery - 自定义节点图标在 Fancytree 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24393362/