Infovis JIT: добавете слушател на щракване към edge

Опитвам се да заснема събитие с щракване върху ръба на графика на слънчеви лъчи. Вече съм заснел събития с кликване върху възли. Това се опитвам:

//..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)


Проблемът е, че методът "contains" за типа на ръба "hyperline" (който sunburst използва) все още не е внедрен в библиотеката infovis.

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

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

Ще можете да улавяте събития за тип край „линия“, тъй като методът съдържа е дефиниран за тип „линия“.

person Pratik Patel    schedule 15.05.2013
comment
Работи! Благодаря ти много. Ще се опитам да напиша метода съдържа, въпреки че изглежда доста трудно. - person nessa.gp; 10.06.2013
comment
Моля. Ще съм благодарен, ако споделите метода съдържа, след като го напишете. - person Pratik Patel; 13.06.2013