欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ztree自定义图标(iconSkin,iconClose,iconOpen)

程序员文章站 2022-03-07 17:05:12
...

设计图:

ztree自定义图标(iconSkin,iconClose,iconOpen)

先放上ztree的api:http://www.treejs.cn/v3/api.php

首先是ztree的初始化:

js文件的初始化

​
 var obj = [
        {
        name: '福建省',
        id:1,
            iconOpen:openurl,
            iconClose:closeurl,
        children: [
            {
                name: '福州市',
                iconOpen:openurl,//自定义的父类展开图标
                iconClose:closeurl,//自定义的父类关闭图标
                children: [{
                    name:'XX河',
                    iconSkin:"iconSkin"
                }]
            }, {
                name:'厦门市',
                iconOpen:openurl,
                iconClose:closeurl,
                children:[
                    {
                    name:'白马河',
                         iconSkin:"iconSkin"
                },
                    {
                        name:'琴亭湖',
                        iconSkin:"iconSkin"
                    }]
            }
        ]
    }, {
            name:'江苏省',
            id:2,
            iconOpen:openurl,
            iconClose:closeurl,
            children:[{
                name:'南京市'
            }]
        }, {
            name:'河南',
            id:3,
            iconOpen:openurl,
            iconClose:closeurl,
            children:[
                {
                    name:'南阳'
                }
            ]
        }, {
            name:'广东',
            id:4,
            iconOpen:openurl,
            iconClose:closeurl,
            children:[{
                name:'深圳'
            }
            ]
        },{
            name:'安徽',
            id:5,
            iconOpen:openurl,
            iconClose:closeurl,
            children:[{
                name:'合肥'
            }]
        }
    ]
    var setting={
        view:{
            dblClickExpand: false,
            showLine: false,
            fontCss: {color: 'rgb(102, 102, 102)',
               "font-size":14},
            selectedMulti: true,
            txtSelectedEnable: true,
            dblClickExpand: false
        },
        check:{
            enable:false,
            chkStyle:'checkbox'
        },
        callback: {
            onClick:onNodeClick
        }
    };

    $.fn.zTree.init($("#treeDemo"),setting,obj);//单击展开

    function onNodeClick (e,treeID,treeNode) {
        var zTree=$.fn.zTree.getZTreeObj("treeDemo");//单击展开
        zTree.expandNode(treeNode);
    }

​

注意我代码里面的两个单击展开父类,由于ztree没有自定义单击一次展开父类的设定(默认是双击展开),我们需要用特殊的方法,在callback里面调用函数来使它单击一次就展开父类。

参考下列博客:

https://blog.csdn.net/u014018281/article/details/77881402

https://blog.csdn.net/zsg88/article/details/71189289

html页面的容器:

 <ul id="treeDemo" class="ztree"></ul>

好了,接下来就是调换默认图标了,我上面的js代码中已经注释了iconOpen以及iconClose两个在obj里面的参数,它们两个对应的是图片各自的url(obj为定义的结点对象数组),对每一个结点都添加这个,有点麻烦,但管用。在子节点中用iconSkin参数,注意iconSkin对应的为css样式。所以我们必须添加css样式:
 

.ztree li span.button.iconSkin_ico_docu{
    background: url("../image/dizhihei.png") no-repeat;
}

在这里关键的是,iconSkin_ico_docu,虽然js中为iconSkin,但是ztree会自动为你添加后面的_ico_docu,所以一定要加,还有,前面的.ztree li span.button也要加上,不然会优先级不够(我猜),下面是我没加上的效果:
ztree自定义图标(iconSkin,iconClose,iconOpen)

很惨的教训。

以下是我搞了一下午的效果:

ztree自定义图标(iconSkin,iconClose,iconOpen)

还有一个问题就是前面的+_不知道怎么去掉,正在寻找解决的办法。

相关标签: 前端