【问题标题】:jsTree: Bind to Domain ObjectsjsTree:绑定到域对象
【发布时间】:2014-07-19 16:23:34
【问题描述】:

我想将树中的每个节点与域对象相关联。我正在传递 HTML 数据并手动将域对象存储在 jQuery 数据中:

$('li node description').data('obj', my_domain_object);

但是,jsTree 似乎在$('#jstree_div').jstree(); 期间清除了该数据。

所以稍后,$('li node description').data('obj') 未定义。

执行此操作的最佳做​​法是什么? (我猜 HTML 或 JSON 数据的原理都是一样的)

【问题讨论】:

    标签: javascript jquery json jstree


    【解决方案1】:

    jsTree 保持数据完整,但出于优化原因移动它 [1]。所以在回调中,必须通过data.node.data.some_key访问。在我的例子中,魔法咒语是:

    $('#jsTree_div').on('select_node.jstree', function (e, data) {
            data.node.data.obj //... (instead of $('#node_id').data('obj'))
    });
    

    [1] “这样做是因为速度。每次重绘节点时使用 jQuery 的 '.data()' 附加数据被证明是相当慢的。” - Ivan Bozhanov,jsTree 创建者https://groups.google.com/d/msg/jstree/w97E8uG_Bd0/enYklH-B1-cJ

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多