使用“类型”插件可以轻松指定关闭文件夹的图标。但是类型插件是否也可用于指定打开文件夹应该是什么样的,或者我只能用CSS执行此操作(如下所示)?
li.jstree-open > a .jstree-icon
{
background:url("folder_open.png") 0px 0px no-repeat !important;
}
答案 0 :(得分:5)
@第七元素:
你问题中的代码本身就是答案。它的工作非常好。 对于开放节点使用
li.jstree-open > a .jstree-icon { background:url("/images/favorites.png") 0px 0px no-repeat !important; }
对于封闭节点,请使用
li.jstree-closed > a .jstree-icon { background:url("/images/favorites.png") 0px 0px no-repeat !important; }
干杯
答案 1 :(得分:4)
如果你们想使用jQuery和bootstrap图标,这是我的解决方案。
[注意:我使用glyphicon-folder-open bootstrap图标打开文件夹 文件夹关闭的glyphicon-folder-close bootstrap图标。]
// bind customize icon change function in jsTree open_node event.
$('#your-jstree').on('open_node.jstree', function(e, data){
$('#' + data.node.id).find('i.jstree-icon.jstree-themeicon').first()
.removeClass('glyphicon-folder-close').addClass('glyphicon-folder-open');
});
// bind customize icon change function in jsTree close_node event.
$('#your-jstree').on('close_node.jstree', function(e, data){
$('#' + data.node.id).find('i.jstree-icon.jstree-themeicon').first()
.removeClass('glyphicon-folder-open').addClass('glyphicon-folder-close');
});
或者如果您使用的是font-awesome:
// bind customize icon change function in jsTree open_node event.
$('#jstree').on('open_node.jstree', function(e, data){
var icon = $('#' + data.node.id).find('i.jstree-icon.jstree-themeicon').first();
icon.removeClass('fa-folder').addClass('fa-folder-open');
});
// bind customize icon change function in jsTree close_node event.
$('#jstree').on('close_node.jstree', function(e, data){
var icon = $('#' + data.node.id).find('i.jstree-icon.jstree-themeicon').first();
icon.removeClass('fa-folder-open').addClass('fa-folder');
});
答案 2 :(得分:4)
一种可能的解决方案是拥有两个type
s - 一个用于打开文件夹,另一个用于封闭文件夹。更改节点type
很简单。
<div id="jstree_menu"></div>
<script>
/* Load menu tree data */
$('#jstree_menu').jstree(
{
'core' : {
'data' : {
'url' : '/jstree-menu-data/index.html',
}
},
'plugins' : [ "types" ],
'types' : {
'default' : {
'icon' : 'fa fa-angle-right fa-fw'
},
'f-open' : {
'icon' : 'fa fa-folder-open fa-fw'
},
'f-closed' : {
'icon' : 'fa fa-folder fa-fw'
}
}
}
);
/* Toggle between folder open and folder closed */
$("#jstree_menu").on('open_node.jstree', function (event, data) {
data.instance.set_type(data.node,'f-open');
});
$("#jstree_menu").on('close_node.jstree', function (event, data) {
data.instance.set_type(data.node,'f-closed');
});
</script>
答案 3 :(得分:0)
看起来你需要使用css
li.jstree-open[rel=TYPE]{ background:url("openimage.gif") 0px 0px no-repeat !important; }
li.jstree-closed[rel=TYPE]{ background:url("closedimage.gif") 0px 0px no-repeat !important; }
li.jstree-leaf[rel=TYPE]{ background:url("leafimage.gif") 0px 0px no-repeat !important; }
中的更多信息