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'.