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


Posted in Javascript onFebruary 28, 2017

基于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))
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
24款非常有用的 jQuery 插件分享
Apr 06 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
JS动态给对象添加事件的简单方法
Jul 19 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
React如何将组件渲染到指定DOM节点详解
Sep 08 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
Sep 27 Javascript
JS实现数组深拷贝的方法分析
Mar 06 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
js实现表格数据搜索
Aug 09 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 #Javascript
canvas绘图不清晰的解决方案
Feb 28 #Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 #Javascript
js数字计算 误差问题的快速解决方法
Feb 28 #Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 #Javascript
JS实现浏览器打印、打印预览示例
Feb 28 #Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 #Javascript
You might like
Terran兵种介绍
2020/03/14 星际争霸
php获得文件扩展名三法
2006/11/25 PHP
php 购物车的例子
2009/05/04 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php常见的魔术方法详解
2014/12/25 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
Django中URL的参数传递的实现
2019/08/04 Python
python flask中动态URL规则详解
2019/11/22 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
人力资源经理自我评价
2014/01/04 职场文书
铁路个人事迹材料
2014/01/30 职场文书
优秀员工评语
2014/02/10 职场文书
土建施工员岗位职责
2015/04/11 职场文书
资金申请报告范文
2015/05/14 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
2015年科普工作总结
2015/07/23 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
python中__slots__节约内存的具体做法
2021/07/04 Python
MySQL中的隐藏列的具体查看
2021/09/04 MySQL