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

Но это только фиксирует щелчки узла. Что случилось? Заранее спасибо.


person nessa.gp    schedule 14.05.2013    source источник


Ответы (1)


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

Метод contains используется библиотекой, чтобы узнать, находится ли некоторая позиция, указанная в параметрах, в пределах края или нет. Вы не можете получить события без метода contains. Таким образом, вы можете либо реализовать свой собственный метод contains для гиперлинии типа в jit.js, либо вы можете просто изменить тип ребра на «линию» с «гиперлинии» в методе инициализации.

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

Вы сможете фиксировать события для типа ребра «линия», потому что метод contains определен для типа «линия».

person Pratik Patel    schedule 15.05.2013
comment
Оно работает! Спасибо большое. Я попробую написать метод contains, хотя это кажется довольно сложным. - person nessa.gp; 10.06.2013
comment
Пожалуйста. Я буду благодарен, если вы поделитесь содержащим методом, после того, как вы его напишете. - person Pratik Patel; 13.06.2013