2017-10-07 3 views
0

fancytree에 노드 아이콘을 설정하려고합니다.fancytree에서 노드의 모든 자식을 얻는 방법?

$("#tree").fancytree({ 
    // Image folder used for data.icon attribute. 
    imagePath: "skin-custom/", 
    // icon: false, 
    renderNode: function(event, data) { 
    // Optionally tweak data.node.span 
    var node = data.node; 
    // Some logic here 
    } 
}); 

내가 그 노드의 자식을 통해 이동하고 모든 선택한 경우, 특정 아이콘을 설정하려는 : 나는 그렇게 할 renderNode를 사용할 수있는 온라인 예에서 발견. 그러나 아이들을 입양 할 때 나는 첫 번째 수준의 아이들 만 얻습니다. 즉, 노드의 자식을 얻지 못한다는 것을 의미합니다. 이를 달성 할 방법이 있습니까? 미리 감사드립니다.

답변

1

renderNode 콜백은 요청시에만 호출됩니다. 새 노드의 경우, 상태가 변경되거나 node.renderStatus()이 호출 될 때

$(...).fancytree({ 
    icon: function(event, data) { 
     return data.node.isSelected() ? "a" : "b"; 
    }, 
    ... 
}); 

당신은 모든 노드를 반복하는이 패턴을 사용할 수 있습니다 :

node.visit(function(n){ 
    console.log(n.isSelected()); 
}); 
+0

답장을 보내 주셔서 감사 많은 당신이 아이콘을 계산해야하는 경우

당신은 icon option가 사용할 수 있습니다. 아이콘 옵션을 확실히 확인하겠습니다. 나는 이미'node.visit (function (n) { console.log (n.isSelected()); });'함수를 사용하고 있습니다. 그러나 모든 노드를 반복하지는 않습니다. 루트와 첫 번째 수준의 자식 만 반복합니다. 나는 뿌리의 아이들의 아이들을 돌려 보내지 않을 것이다. 하지만 여전히 고마워. :) – arvind

+0

방문 방법은 ** 모든 ** 자손을 통과합니다 (물론 언로드 된 게으른 노드는 제외) – mar10

관련 문제