基于cookie实现zTree树刷新后,展开状态不变

    1、除了引用jQuery和zTree的JS外,引用cookie的JS:

<script type="text/javascript" src="~/Scripts/jquery-treeview/lib/jquery.cookie.js"></script>

    2、JS代码:

$(function () {
    //ztree设置
    var setting = {
        data: {
            simpleData: {
                enable: true,
                idKey: "id",
                pIdKey: "pId",
                rootPId: null
            }
        },
        callback: {
            onExpand: onExpand,
            onCollapse: onCollapse
        }
    };

    $.ajax({
        type: "POST",
        url: "/Tech/TemplateTypeManage/GetData",
        success: function (data) {
            if (data && data.length != 0) {
                $.fn.zTree.init($("#tree"), setting, data);
                var treeObj = $.fn.zTree.getZTreeObj("tree");
                var cookie = $.cookie("z_tree" + window.location);
                if (cookie) {
                    z_tree = JSON2.parse(cookie);
                    for (var i = 0; i < z_tree.length; i++) {
                        var node = treeObj.getNodeByParam('id', z_tree[i])
                        treeObj.expandNode(node, true, false)
                    }
                }
            }
        }
    });
});//end $

function onExpand(event, treeId, treeNode) {
    var cookie = $.cookie("z_tree" + window.location);
    var z_tree = new Array();
    if (cookie) {
        z_tree = JSON2.parse(cookie);
    }
    if ($.inArray(treeNode.id, z_tree) < 0) {
        z_tree.push(treeNode.id);
    }
    $.cookie("z_tree" + window.location, JSON2.stringify(z_tree))
}

function onCollapse(event, treeId, treeNode) {
    var cookie = $.cookie("z_tree" + window.location);
    var z_tree = new Array();
    if (cookie) {
        z_tree = JSON2.parse(cookie);
    }
    var index = $.inArray(treeNode.id, z_tree);
    z_tree.splice(index, 1);
    for (var i = 0; i < treeNode.children.length; i++) {
        index = $.inArray(treeNode.children[i].id, z_tree);
        if (index > -1) z_tree.splice(index, 1);
    }
    $.cookie("z_tree" + window.location, JSON2.stringify(z_tree))
}
View Code
原文地址:https://www.cnblogs.com/s0611163/p/5032570.html