D3 및 jquery에 대해 더 자세히 배우려고하므로 실수를 저 지르십시오.토글 노드가있는 D3 트리 레이아웃에서 jsTree 만들기
나는 d3 트리 레이아웃을 확대/축소 트리 레이아웃에 성공적으로 "리믹스"했지만, 사용자가 특정 노드를 켜고 끌 수있는 jstree를 작성하여 세부 사항의 가장 낮은 그레인을 표시하고자합니다. 트리 (현재 클릭 기능은 트리가이 그레인으로 떨어지는 것을 방지합니다). , 내가 JSON "을 구축"할 필요가 나는 toggleNode 기능에 생각에서 그런
function click(d) {
if (d.depth != 4) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update(d);
}
else
{
var circle = d3.select(this).selectAll("circle");
var togglestate;
console.log(circle.style("fill"));
if (circle.style("fill") == "#b0c4de") {
togglestate="on";
circle.style("fill","red");
toggleNode(togglestate,d);
}
else {
togglestate="off";
circle.style("fill","lightsteelblue");
toggleNode(togglestate,d);
}
}
}
:
은이 같은 다른 기능에 가장 낮은 수준으로 2 차에 클릭 이벤트를 리디렉션 할 수 있었다 트리를 만들기 위해 jsTree에 전달할 수있는 객체이지만, 이것이 내 이해의 한계를 밀고 있습니다. 누군가 나를 교육시킬 수 있습니까?나는 완전히 작동하는 바이올렛 here을 만들었습니다.
나는 같은 jsfiddle에 jstree를하는 방법을 잘 모르겠어요,하지만 난 jstree 웹 사이트에서 JSON 형식이 같은 것을 말할 수 있습니다 :
$('#using_json').jstree({ 'core' : {
'data' : [
'Simple root node',
{
'text' : 'Root node 2',
'state' : {
'opened' : true,
'selected' : true
},
'children' : [
{ 'text' : 'Child 1' },
'Child 2'
]
}
]
} });
은 어떻게 든 나는이 두 부분을 접착제 필요 함께. 다시 한 번 결과를 얻을 수있는 더 좋은 방법이 있다고 확신하지만 아직 발견하지 못했습니다.
의 JSON 형식으로 D3 개체를 구문 분석 처리하기 위해이 toggleNode 기능을 썼다 그러나 나는 당신의 질문을 구문 분석하는 어려움을 겪고 있어요. 내 의견으로는 d3과 jquery를 배우기위한 어려운 길을 택 했음에도 불구하고 나무 구조의 구현이 아주 다르다는 사실에도 불구하고이 예제를 보시기 바랍니다 (http://mbostock.github.io/d3/talk/20111018). /tree.html) 여기서 클릭 기능을 사용하면 잎 노드 정보로 추정되는 "가장 세부적인 세부 정보"로가는 것을 막을 수 있습니다. – FernOfTheAndes
@FernOfTheAndes 동의합니다. 이것은 복잡한 질문입니다. ! 그 예가 정확히 같은 생각은 아닙니다. 트리 레이아웃에서 특정 깊이로 멈 춥니 다 (이 예제에서는 4입니다). jstree 객체에 넣고 싶은 수준입니다. 나는 실제로 데이터 객체를 파싱하여 jstree가 트리를 만들 수있는 올바른 형식으로 만들 것이라고 생각한다. – mrkb80
toggleNode 함수에서 내 최근 시도로 my [jsfiddle] (http://jsfiddle.net/bGa48/3/)을 업데이트했습니다. JSON 객체를 콘솔에 씁니다. 그러나이 객체를 jstree의 지정된 형식과 비교하면 정확히 동일하지는 않습니다. jstree 형식으로 정렬하는 방법을 알아 내려고 노력 중입니다. – mrkb80