jstree使用【三】根据节点类型更换节点图标

树节后前面不同的icon可以很方便很明确的告诉我们这个结点的类型或者其他的什么。
我做的项目里面这颗树状图是一颗车辆树,包括根节点,公司,下级公司,车组,以及车辆。为了考虑浏览器加载的性能问题,这棵树是采用异步加载,第一次加载的时候仅加载公司等类似于文件夹类型的结点,并不加载含有车辆的结点。

$('#jstree_vehicle').jstree({
            "types": {//1为公司,2为子公司,3为车组,4为车辆
                "1": {
                    "valid_children": ["2", "3", "4"],
                    "icon": "jstree-folder"
                },
                "2": {
                    "icon": "jstree-folder",
                    "valid_children": ["2", "3", "4"]
                },
                "3": {
                    "icon": "jstree-folder",
                    "valid_children": ["3", "4"]
                },
                "4": {
                    "icon": "jstree-node-online"
                }
            },
            "plugins": ["types"]/
        }).on("load_node.jstree",function(e,d){
            var nodes=d.node.children_d;
            for(var i in nodes){
                var node=d.instance.get_node(nodes[i]);
                if(node.type=="4"){
                    var _node=node.original;
                    vehicleTree.set_icon(node,"jstree-node-offline");
                    (_node.isOnline=="true")&&vehicleTree.set_icon(node,"jstree-node-online");
                }
            }
        });

由于是异步加载车辆的实时信息,我并不是只要知道节点的类型就可以了,还要根据类型获取他的离线在线信息。而这些信息在异步获取数据的时候都已经返回回来了。在结点对象的node.original中,有从后台传过来的所有信息。
我通过这个对象得到该结点的isOnline信息。
如果isOnline对象为在线,那么就将节点的图标改为“jstree-node-online”,方法如下:

//jstree-node-online 是自定义的图标css
.jstree-default .jstree-node-online {
    background: url("/image/treeicon/24/online24.gif") no-repeat;
}
//修改图标的方法
vehicleTree.set_icon(node,"jstree-node-online")

“load_node.jstree”是加载节点时会调用的事件,不管是初次加载还是异步加载都会调用。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值