zui树形菜单的本地保存功能不好使

QiFeng66 2019-05-06 11:02:42

使用zui的 树形菜单,通过 $ ( "#**" ). tree ( treeOptions );的方式加载树形菜单,在 treeOptions中设置 treeOptions . initialState = 'preserve' ;来使打开状态为 从本地存储还原用户上次操作状态。但是,存储的只有打开的操作,关闭的菜单并没有存储起来。换句话说,

我在展开某个树形时,zui在本地存储了这个菜单的id,如图

但是当我折叠这个树形时,zui却没有将这个数据的值改为false或者删除,导致localStorage在折叠时没有发生变化,使得本地存储出现错误,这就使得 treeOptions . initialState  = 'preserve' ;这条树形不好使。自己看了看zui.js源码,做了小小的修改,能够保证 localStorage的正确存储以及树形能够正确 还原用户上次操作状态的,但是本人不确定这么修改会不会影响其他功能和方法,希望官方大大看到帮忙解决一下,十分谢谢。

下面是修改的内容:

思路:由于在这个方法中(如下图),决定 localStorage增加还是删除的条件取决于 $li. hasClass ( 'open' ),但是在折叠时,是通过setTimeOut方法来删除 $li的class属性‘ open’的,导致这之后的 this . preserve ($li)方法中没有删除而是增加的 localStorage。当然这些只是我根据错误自己查看源码找到的,并 不确定解决方案和解决思路是否正确。期待官方的解答。


蝉知2.0