zoukankan      html  css  js  c++  java
  • 基于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
  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/s0611163/p/5032570.html
Copyright © 2011-2022 走看看