2014-11-04 3 views
0

힘 지향 그래프에서 원 요소의 반지름을 업데이트하고 싶지만 d3.js 개체를 선택하려면 오류 undefined is not a function이 표시됩니다. 여기 d3.js에서 원 요소의 반지름 업데이트

당신은 함수에 잘못된 괄호가

$("#resizeN").on("click",function(){ 

    for (var i = 0; i < nodes.length; i++){ 
     var f = d3.select("svg #n" + (i+1).toString().attr("r", function (n){ 

      return 30 * graph.nodeSizeFactor; 
     })); 
    } 
}); 

complete sample

답변

2

새 반경을 트리거

enter image description here

클릭 이벤트, SVG 요소의 구조 , 우 ~ uld는 다음과 같아야합니다 :

for (var i = 0; i < nodes.length; i++){ 
    var f = d3.select("svg #n" + (i+1).toString()).attr("r", function (n){ 

     return 30 * graph.nodeSizeFactor; 
    }); // moved it from here to before the .attr 
} 

나머지 코드를 이해하지 못하면이 작업이 일반적인 "D3 방법"처럼 보이지 않습니다. 이 노드에 적용 할 수있는 공통 클래스가 있습니까? 그런 다음이를 선택할 수 있습니까?

d3.selectAll('.mycircles').attr('r', function(d) { 
    return 30 * graph.nodeSizeFactor; 
}); 
+0

괄호가 맞습니다. 예, selectAll 메소드로 노드를 선택할 수 있습니다. 한 번에 더 많은 요소에 대해 attr 메서드를 적용 할 수 있다는 것을 알지 못했습니다. 나는 d3.js에서 새롭다. 고맙습니다 – Matt

관련 문제