1 回答

TA贡献1789条经验 获得超10个赞
我认为这不可能作为 jsTree 的标准配置。但是,您可以在节点上设置 li 属性并重绘它。这将使用属性更新 DOM。我不确定这是否是解决此问题的最佳方法,但它确实有效。
$('#folder_jstree').jstree({ 'core' : {
'data' : folder_jsondata,
'multiple': false
} });
var getColor = function (i) {
if (i >= 100 && i <= 199) { return "blue"; }
else if (i >= 200 && i <= 299) { return "red"; }
else if (i >= 300 && i <= 399) { return "yellow"; }
else if (i >= 400 && i <= 499) { return "purple"; }
else if (i >= 500 && i <= 599) { return "green"; }
else { return "#000"; }
}
var colorNodes = function(nodelist){
var tree = $('#folder_jstree').jstree(true);
nodelist.forEach(function (n) {
tree.get_node(n.id).a_attr.style = "color:" + getColor(parseInt(n.text.substr(0,3),10));
tree.redraw_node(n.id); //Redraw tree
colorNodes(n.children); //Update leaf nodes
});
}
$('#folder_jstree').bind('load_node.jstree', function (e, data) {
var tree = $('#folder_jstree').jstree(true);
colorNodes(tree.get_json());
});
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报