用cookie实现对easyui-tree节点状态的缓存

这篇博客介绍了如何利用JavaScript的Cookie功能,在EasyUI的Tree组件中保存和恢复节点的展开/折叠状态。通过在节点展开和折叠时读取与更新Cookie,实现了在页面刷新后依然能记住树形结构的状态。

js:

var cookieName = "nodeName";//设置cookie为其命名
function expandORcollapse() {
    $('#projectTree').tree(
    {

//当节点展开始触发
        onExpand: function (node, data) {

//读取cookie
            var cvalue = $.cookie(cookieName);
            if (cvalue) {
                var cvalue1 = cvalue;
                var ns = "," + node.id + ",";
                if (cvalue1.indexOf(ns) >= 0) {
                    //(先分割再聚合)分割成数组,再重新拼接成新的字符串
                    cvalue1 = cvalue1.split(ns).join("");
                }
            }

//最后给cookie赋值并给予时限(为7天)
            $.cookie(cookieName, cvalue1, { expires: 7 });

        },

//当节点折叠时触发
        onCollapse: function (node, data) {

//读取并判断
            var str = $.cookie(cookieName);
            var cv = str;
            var n1 =","+ node.id+",";
            if (cv == undefined || cv == "") {
                cv =n1;
            } else if (cv.indexOf(n1)>=0) {  //去重,如果已有该节点id就不再添加
                cv = cv;
            }
            else {
                cv +=n1;
            }

//赋值并设置时限
            $.cookie(cookieName, cv, { expires: 7 });
        }

    });
}

最后加载数据时实现展开或者折叠

  var rooNode = $.cookie(cookieName);

function LoadUserTree(rooNode) {

    $('#projectTree').tree(
    {
       
        onLoadSuccess: function (node, data) {          
            if (rooNode != null) {              
                var n = 0;

//分割字符串
                var s = rooNode.split(",");               
                for (var i = 0; i < s.length; i++) {
                    n = s[i];
                    if (n != "") {                     
                        var node11 = $("#" + content).tree("find", n);                    
                        $("#" + content).tree("collapse", node11.target);
                    }
                }

            }
        }
            
    });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值