1

我正在尝试使用 XML 文件作为我的 d3js 可视化的数据源。它适用于基于 webkit 的浏览器,但不适用于 firefox。我相信错误来自一个 DOM 元素没有 forEach 函数的事实。3djs 似乎期望在它接收 DOM 对象的地方有一个数组。但我不知道在哪里

我的孩子功能看起来像这样。

var bubble = d3.layout.pack()
    .sort(null)
    .children(function(d){
        var c = $("system",d);
        if (c.length<=0) c = $("planet",d);
        return c;
    })

是 XML 文档。我通过直接将它传递给 d3js

node = viz.selectAll(".node")
        .data(bubble.nodes(xmldata))
        .enter().append("g")
        .attr("class", "node")

是代码的现场演示(在 webkit 中有效,但在 Firefox 中无效)。这是完整的源代码

4

1 回答 1

2

请参阅此处进行修复。

问题是 jQuery 查询结果直接作为节点传递给 D3 布局。D3 将各种属性,例如“children”,直接写入每个节点。如果存在同名的现有属性用于其他目的,例如本例中的 jQuery 的“子项”,这可能会导致问题。

于 2013-04-03T23:48:43.447 回答