在尝试实现相互排斥的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;
我在第323行的 d3.layout.js 中收到此错误未捕获的TypeError:event [type] .add不是函数。
以下是d3.layout.js中的相关代码
force.on = function(type, listener) {
event[type].add(listener); // line 323
return force;
};
&#13;
我按以下顺序包含了D3JS库:
<script src="../resources/js/d3.js"></script>
<script src="../resources/js/d3.layout.js"></script>
<script src="../resources/js/d3.geom.js"></script>
&#13;