2013-05-14 2 views
1

햇살 그래프 가장자리에서 클릭 이벤트를 캡처하려고합니다. 이미 노드에서 클릭 이벤트를 캡처했습니다. 이것은 내가 시도하고있는 것입니다 :Infovis JIT : 가장자리에 클릭 청취자를 추가하십시오.

//..sunburst example code 
Events: { 
    enable: true, 
    enableForEdges: true, 
    type: 'Native', 
    onClick: function(node, eventInfo, e){ 
    if (!node) return; 
    if(node.nodeFrom){ 
     console.log("target is an edge"); 
    }else{ 
     console.log("target is a node"); 
    } 
    } 

그러나 이것은 노드 클릭 만 캡처합니다. 뭐가 문제 야? 미리 감사드립니다.

답변

4

'하이퍼 라인'(선 버스트 사용)이 infovis 라이브러리에 아직 구현되지 않은 문제는 '포함'방법입니다.

Contains 메서드는 매개 변수에 지정된 위치가 가장자리 내에 있는지 여부를 알기 위해 라이브러리에서 사용됩니다. 메소드를 포함하지 않고 이벤트를 가져올 수 없습니다. 그래서, 당신은 jit.js에 하이퍼 라인 타입을위한 자신의 contains 메소드를 구현하거나 init 메소드의 'hyperline'에서 단순히 'line'으로 에지 타입을 변경할 수 있습니다.

Edge: { 
    overridable: true, 
    type: 'line', //'hyperline' 
    lineWidth: 2, 
    color: '#777' 
} 

'line'유형의 contains 메소드가 정의 되었기 때문에 'line'유형의 이벤트를 캡처 할 수 있습니다.

+0

작동합니다! 고맙습니다. contains 메소드를 작성하려고 노력 하겠지만 꽤 어렵습니다. –

+0

반갑습니다. 당신이 그것을 쓰고 나면, 당신이 공유한다면, 나는 감사 할 것입니다. –

관련 문제