未捕获的TypeError:event [type] .add不是D3JS中的函数

时间:2015-07-30 15:33:27

标签: javascript d3.js

在尝试实现相互排斥的d3示例时遇到以下javascript错误,如d3Demo所示。

我已经为同一个viz包含了所有必需的JS文件。 d3.js,d3.layout.js和d3.geom.js

以下是JS代码。



var w = 1280,
    h = 800;

var force = d3.layout.force()
    .gravity(0)
    .charge(-60)
    .size([w, h]);

var svg = d3.select("#chart").append("svg:svg")
    .attr("width", w)
    .attr("height", h);

svg.append("svg:rect")
    .attr("width", w)
    .attr("height", h);

force.on("tick", function() {
  svg.selectAll("circle")
      .attr("cx", function(d) { return d.x; })
      .attr("cy", function(d) { return d.y; });
});

var p0;

svg.on("mousemove", function() {
  var p1 = d3.svg.mouse(this),
      node = {x: p1[0], y: p1[1], px: (p0 || (p0 = p1))[0], py: p0[1]};

  p0 = p1;

  svg.append("svg:circle")
      .data([node])
      .attr("class", "node")
      .attr("cx", function(d) { return d.x; })
      .attr("cy", function(d) { return d.y; })
      .attr("r", 4.5)
    .transition()
      .delay(3000)
      .attr("r", 1e-6)
      .each("end", function() { force.nodes().shift(); })
      .remove();

  force.nodes().push(node);
  force.start();
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<div id="chart"></div>
&#13;
&#13;
&#13;

我在第323行的 d3.layout.js 中收到此错误未捕获的TypeError:event [type] .add不是函数

以下是d3.layout.js中的相关代码

&#13;
&#13;
  force.on = function(type, listener) {
	    event[type].add(listener); // line 323

    return force;
  };
&#13;
&#13;
&#13;

我按以下顺序包含了D3JS库:

&#13;
&#13;
    <script src="../resources/js/d3.js"></script>
    <script src="../resources/js/d3.layout.js"></script>
    <script src="../resources/js/d3.geom.js"></script>
&#13;
&#13;
&#13;

0 个答案:

没有答案