【问题标题】:Expand All Nodes on Lazyload in Jquery dynatree在 Jquery dynatree 中展开 Lazyload 上的所有节点
【发布时间】:2011-09-15 15:53:56
【问题描述】:

我正在为树视图使用 Dyna Tree 插件。

现在,在扩展父节点时,我正在使用延迟加载功能,

onLazyRead: function(node){
    node.appendAjax({
    url: TREEVIEW_JSON_URL
    });
}

现在我想使用lazyLoad 展开响应中可用的所有子节点和子节点。在当前场景中,我只能展开子节点。

请帮我解决这个问题。提前致谢

【问题讨论】:

    标签: jquery dynatree


    【解决方案1】:

    你可以试试这样的东西(虽然还没有测试过):

    $("#tree").dynatree({
        […]
        onLazyRead: function(node){
            node.appendAjax({url: TREEVIEW_JSON_URL,
                             success: function(node) {
                                 // Called after nodes have been created and the waiting icon was removed.
                                 // now expand all children
                                 node.visit(function(n){
                                     n.expand(true);
                                     });
                                 }
                             });
        },
        […]
    });
    

    【讨论】:

    • 您好,抱歉回复晚了。我的服务正在测试您的示例建议。使用您建议的代码,树级别被扩展,但它的子节点也通过 ajax 延迟加载被调用。有什么方法可以阻止那些 ajax 调用并只扩展直到数据存在。
    • 您可以调用node.hasChildren() 来检查是否存在子节点。您还可以让服务器将"expand": true 添加到 JSON 数据中,这是最有效的方式(无需 JavaScript)。
    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多