2013-02-19 25 views
1

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

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

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

This是XML文档。我直接就通过

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

This传递给d3js是代码的现场演示(在WebKit的工作,但不能在Firefox)。而here是完整的源代码。

回答

2

请参阅here进行修复。

问题是,一个jQuery查询结果被直接作为 节点传递给D3布局。 D3将各种属性(如 “children”)直接写入每个节点。这可能会导致问题,如果有 现有的属性用于另一个目的相同的名称, 如jQuery的“子”在这种情况下。