从D3js 2.4.4转换为3.5.5

时间:2015-06-05 12:09:28

标签: javascript svg d3.js

示例运行D3js 2.4.4:http://mbostock.github.io/d3/talk/20111018/area-gradient.html 我想让它与版本3.5.5一起运行

我得到的第一个错误是

  

TypeError:x不是函数/第52行

     

.attr(" x",x(0))

我应该改变什么?

取得一些进展

看起来第一个问题是D3.time来自于我用3.5.5版替换D3.js后仍然包含的分离的D3.time.js。 我现在删除了d3.time.js和d3.csv.js的html包含。  但现在我明白了:

  

TypeError: d3.event.transform不是函数 //第110行

     

d3.event.transform(X);

1 个答案:

答案 0 :(得分:0)

此处找到解决方案: https://groups.google.com/forum/#!topic/d3-js/6p7Lbnz-jRQ

此处的完整性检查代码:http://plnkr.co/edit/b8yO66lazDzIQ0Wf3RRM?p=preview

更改

  1. 将svg.append('svg:rect')分配给变量。 var rect = svg.append("svg:rect") ...
  2. 评论/删除行.call(d3.behavior.zoom().on("zoom", zoom))
  3. 绑定事件AFTER域是使用line定义的 rect.call(d3.behavior.zoom().x(x).on("zoom", zoom));。 !请注意此新行中的其他.x(x)
  4. 评论/删除d3.event.transform(x);
  5. 中的行function zoom(){...}