저는 d3.js로 시작 했으므로 간단한 데모를 제대로 수행 할 수 없습니다. 디버깅하기가 어렵습니다 : 버그가있는 경우 d3의 축소 코드에서 스택 추적없이 충돌하는 경우가 있습니다. 이 경우 오류 콘솔에 오류를 전혀 인쇄하지 않습니다.d3.js 강제 레이아웃이 실행되지 않습니다
이 코드를 실행하면 모든 노드가 force()에 의해 배치되는 대신 (0,0)의 위치에 고정됩니다. 뭐가 문제 야?
<html>
<meta charset="UTF-8">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
$(function() {
var svg = d3.select('#graph').append('svg').attr('width', 900).attr('height', 900)
var myNodes = [{name:'a'}, {name:'b'}, {name:'c'}]
var myLinks = [{source:myNodes[0], target:myNodes[1]}, {source:myNodes[1], target:myNodes[2]}, {source:myNodes[2], target:myNodes[0]}]
svg.append("text").text("myNodes[0].name=" + myNodes[0].name).attr('y', 50)
var force = d3.layout.force().charge(-120).linkDistance(30).size([900, 900])
var link = svg.selectAll("line")
.data(myLinks)
.enter().append("svg:line");
var node = svg.selectAll("circle")
.data(myNodes)
.enter().append("svg:circle")
.attr("r", 6)
.call(force.drag)
force.nodes(myNodes).links(myLinks).start()
});
</script>
</head>
<body>
<div id="graph"></div>
</body>
</html>