页面刷新时jQuery treeTable保存状态

时间:2011-07-11 14:41:40

标签: jquery jquery-plugins treetable

我正在使用jquery treetable插件将我的数据显示为表格中的树视图。我在网上找到关于这个插件的详细文档。我需要的是,如果用户扩展sum节点,然后他重新打开或刷新页面,节点扩展shud处于其先前状态(即扩展shud的节点保持扩展而不是折叠到其父节点)。在这个阶段我有节点名称扩展,存储在cookie但我不知道如何搞乱这个jQuery插件,因为我没有掌握jQuery语法。这个插件中有一个函数

// Reveal a node by expanding all ancestors
  $.fn.reveal = function() {
    $(ancestorsOf($(this)).reverse()).each(function() {
      initialize($(this));
      $(this).expand().show();
    });

    return this;
  };

我认为这可能对实现我的目标有用...但我不知道如何使用它,或者改变它或从中调用它:S

3 个答案:

答案 0 :(得分:3)

我最初开始使用此插件,并喜欢将其他数据移动到其他列(如文件大小或说明)的功能。我把它全部撕掉了因为我喜欢语义嵌套的ul结构。它最终拥有很多很棒的功能,包括COOKIE支持。如果您愿意放弃表视图,我也会考虑切换。这是演示页JSTREE DEMOS。我认为最后一个使用cookie插件。将侦听器添加到其中许多事件的能力也非常强大。我在半天的工作中得到了拖放基于MySQL的文件系统设置。我最终不得不删除一些插件(包括上下文菜单......让用户右键单击以重命名/删除/等..),因为它有太多的功能!

代码片段显示插件并添加好的事件侦听器:

$("#demo")
.bind("before.jstree", function (e, data) {
    $("#alog").append(data.func + "<br />");
})
.jstree({
    // List of active plugins
    "plugins" : [
        "themes","json_data","ui","crrm","cookies","dnd",
        "search","types","hotkeys","contextmenu"
    ],

答案 1 :(得分:1)

得到它......只需从javascript中调用存储在cookie中的所有元素的$(nodeElement).reveal()('nodeElement'来自cookie),然后在下次刷新时,所有元素都将处于以前的状态

答案 2 :(得分:0)

$('#treetable').treetable({ expandable: true, initialState: 'Expand' }, true);