基于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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
jquery HotKeys轻松搞定键盘事件代码
Aug 30 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
将List对象列表转换成JSON格式的类实现方法
Jul 04 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
Angular中sweetalert弹框的基本使用教程
Jul 22 Javascript
JS实现的雪花飘落特效示例
Dec 03 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Django admin美化插件suit使用示例
2017/12/12 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python实现猜单词小游戏
2020/05/22 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
django下创建多个app并设置urls方法
2020/08/02 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
医院义诊活动总结
2014/07/04 职场文书
涨价通知怎么写
2015/04/23 职场文书
2019消防宣传标语!
2019/07/10 职场文书
德劲DE1108畅想
2021/04/22 无线电
Python各协议下socket黏包问题原理
2022/04/12 Python
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers