【问题标题】:jQuery treeTable saving state on page refreshjQuery treeTable在页面刷新时保存状态
【发布时间】:2011-07-11 14:41:40
【问题描述】:

我正在使用 jquery treetable 插件将我的数据显示为表格中的树视图。我力图在网上找到有关此插件的详细文档。我需要的是,如果用户扩展总和节点,然后他重新打开或刷新页面,节点扩展应该处于其先前状态(即扩展的节点保持扩展状态而不是折叠到它们的父节点中)。在这个阶段,我有要扩展的节点名称,存储在 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 调用它

【问题讨论】:

    标签: jquery jquery-plugins treetable


    【解决方案1】:

    我最初开始使用这个插件并喜欢将附加数据移动到其他列(如文件大小或描述)的能力。我把它全部撕掉了,因为我喜欢语义嵌套的 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"
        ],
    

    【讨论】:

    • 非常感谢队友......但我实际上使用了这个插件,因为我有针对树中每个节点的列数据!毫无疑问,JStree 非常强大,但它不符合我的需要。
    【解决方案2】:

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

    【讨论】:

    • 嗨,Salman,您能帮我处理一下您使用的 jquery cookie。我也需要解决这个问题。
    • 看你的电子邮件...我会发给你的。
    【解决方案3】:
    $('#treetable').treetable({ expandable: true, initialState: 'Expand' }, true);
    

    【讨论】:

    • 你能详细说明一下吗
    • 这是不对的。这将在渲染时默认展开所有行。因此,最初所有行都会被展开。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多