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");  
    }  
  }  

Но это только захватывает щелчки узлов. В чем дело? Заранее спасибо.

1 ответ

Решение

Проблема заключается в том, что метод "содержит" для типа ребер "гиперлайн" (который использует солнечные лучи) еще не реализован в библиотеке infovis.

Метод Contains используется библиотекой, чтобы узнать, находится ли какая-либо позиция, указанная в параметрах, внутри края или нет. Вы не можете получить события без метода содержит. Таким образом, вы можете реализовать свой собственный метод для гиперссылки типа в jit.js или просто изменить тип ребра на 'line' с 'hyperline' в методе init.

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

Вы сможете захватывать события для типа ребра 'line', потому что метод для типа определен для типа 'line'.

Другие вопросы по тегам