博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FancyTree 状态保持
阅读量:5876 次
发布时间:2019-06-19

本文共 2442 字,大约阅读时间需要 8 分钟。

FancyTree非常优秀的树控件

examples:http://wwwendt.de/tech/fancytree/

如何将树节点的选中状态保存下来,无论刷新页面还是,ajax重复请求,都保持在上一次状态呢?

FancyTree提供状态持久化保存扩展,方案如下:

https://github.com/mar10/fancytree/wiki/ExtPersist

$("#tree").fancytree({  extensions: ["persist"],  checkbox: true,  persist: {    // Available options with their default:    cookieDelimiter: "~",    // character used to join key strings    cookiePrefix: undefined, // 'fancytree-
-' by default cookie: { // settings passed to jquery.cookie plugin raw: false, expires: "", path: "", domain: "", secure: false }, expandLazy: false, // true: recursively expand and load lazy nodes overrideSource: true, // true: cookie takes precedence over `source` data attributes. store: "auto", // 'cookie': use cookie, 'local': use localStore, 'session': use sessionStore types: "active expanded focus selected" // which status types to store }, [...]});

Options

  • cookieDelimiter, type: {string}, default: '~'

    Character used to join key strings.

  • cookiePrefix, type: {string}, default: 'fancytree-<treeId>-'

    Used to generate storage keys.

  • cookie, type: {object}, default: use a session cookie

    Options passed to  (only if cookies are used; see also 'store' option).

  • expandLazy, type: {boolean}, default: false

    true: recursively expand and load lazy nodes.

  • fireActivate, type: {boolean}, default: true

    false: suppress activate event after active node was restored.

  • overrideSource, type: {boolean}, default: true

    true: persisted information will be used, even if source data is set to true or false.
    false: persisted information will only be used if source data is undefined.

  • store, type: {string}, default: 'auto'

    Storage type 'local': , 'session': , 'cookie': use  (or  ) plugin.
    'auto': use sessionStorage if available, fallback to cookie.
    Use 'local' (or 'cookie' with expiration settings) to store status over sessions.

  • types, type: {string}, default: 'active expanded focus selected'

    Which status types to store, separated by space.

Events

  • restore
    Fired after tree status is restored.

Methods

    • {void} tree.clearCookies(types)
      Reset persistence data.
      {string} [types='active expanded focus selected']

 

这里注意:cookiePrefix,如果不设置该值的话,每次ajax请求的tree都是不一样(非刷新页面),无法达到保持状态的效果,设置该值后,无论刷新页面还是ajax请求,都可以保持状态了。

参考文献:http://stackoverflow.com/questions/33147617/fancytree-only-loads-persist-state-after-page-refresh

cookie: { expires:365 }, 可以设置cookie的有效期,当然还有其他若干存储方式可选择

 

转载地址:http://mkkix.baihongyu.com/

你可能感兴趣的文章
Spring MVC NoClassDefFoundError 问题的解决方法。
查看>>
CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
C# 解决窗体闪烁
查看>>
CSS魔法堂:Transition就这么好玩
查看>>
【OpenStack】network相关知识学习
查看>>
centos 7下独立的python 2.7环境安装
查看>>
[日常] 算法-单链表的创建
查看>>
前端工程化系列[01]-Bower包管理工具的使用
查看>>
使用 maven 自动将源码打包并发布
查看>>
Spark:求出分组内的TopN
查看>>
Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
查看>>
关于跨DB增量(增、改)同步两张表的数据小技巧
查看>>
飞秋无法显示局域网好友
查看>>
学员会诊之03:你那惨不忍睹的三层架构
查看>>
vue-04-组件
查看>>
Golang协程与通道整理
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
js - object.assign 以及浅、深拷贝
查看>>