【问题标题】:jstree get_json duplicating tree datajstree get_json 复制树数据
【发布时间】:2011-07-24 03:45:17
【问题描述】:

所以我有一个看起来像这样的 jstree:


-1
-2
--2.1
---2.1.1
----2.1.1.1 到 2.1.1.24(如 2.1.1 下的 24 名儿童)
---2.1.2
----2.1.2.1 到 2.1.2.24(如 2.1.1 以下的 24 名儿童)
--2.2
-3

当我生成 json 以进行字符串化并发送到服务器时(发布用户使用它),在它被发送到服务器之前,我可以看到 post stringify json 复制了一堆数据。例如,2.1.1.1-24 在 2.1.1 下被重复两次,而 2.1.1(以及 2.1.1.1-24 的双重重复)在字符串的后面被重复。其他一些元素也是如此。 2.1.2 被复制了,但是 2.1.2.1-24 下的数据没有被复制两次。

正如我在字符串中看到的那样:
...
---2.1.1
----2.1.1.1 到 2.1.1.24(如 2.1.1 下的 24 名儿童)
----2.1.1.1 到 2.1.1.24(如 24 个 2.1.1 以下的孩子)
(注意:1-24 个孩子两次)

然后上面的整个块在字符串的后面再次重复。

2.1.2 块同样会重复两次。当然,一旦它到达服务器并且我将字符串反序列化为对象,它就会变得一团糟。有什么想法吗?

var v = jQuery.jstree._reference("#tree").get_json(-1);
var mytext = JSON.stringify(v);
alert(mytext);

我可以在弹出窗口中看到所有重复的数据。它似乎在更高级别的父级下复制子级。反序列化后,我看到该重复数据的某些实例显示为“根”的子项,即使所述数据是孙子/曾孙。在根目录下,唯一的“孩子”应该是 1、2 和 3。相反,我有 1、2、2.1、2.1.1(以及 2.1.1.1-24)2.1.2(但奇怪的是不是 2.1.2.1- 24), 2.2 & 3.

PS - 我已经在最新版本的 IE、Firefox 和 Chrome 中对此进行了测试。

【问题讨论】:

  • 发现了问题。我的树是从数据库自动生成的。我遗漏了用于元素“id”的部分复合名称。因为这个“id”在整个文档中并不是唯一的。例如。 “Root”和 2.1.1 具有相同的“id”值,这就是各种元素重复的原因。

标签: jquery jstree


【解决方案1】:

发现问题。我的树是从数据库自动生成的。我遗漏了用于元素“id”的部分复合名称。因为这个“id”在整个文档中并不是唯一的。例如。 “Root”和 2.1.1 具有相同的“id”值,这就是各种元素重复的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多