Je n'ai pas trouvé comment faire un click directement , donc j'ai fait un truc sale :
Code :
graph.bind('overnodes', //je maintiens une liste des noeuds sous mon curseur de souris function (event) { var nodes = event.content; if (nodes.length) //ajouter les noeuds dans ma liste ; }).bind('outnodes', function (event) { //enlever les noeuds de la liste });
|
ensuite en cas de click sur le conteneur, je sasi que j'ai cliqué sue les noeuds qui sont encore dans ma liste de overnode (attention, il peut y en avoir plusieurs)
Sinon, il faut reprendre le code de la fonction checkHover a chaque click pour déterminer quels sont les noeuds sous la position du clik de la souris
C'est dessiné avec du canvas (plusieurs canvas les un au dessus des autres ). Pour avoir des évènement 'click' sur chaque élément il faudrait faire du dessin vectoriel (svg/vml) au lieu du raster(canvas) , mais les perfs s'effondre dès qu'il y a trop de monde sur le graphe
Message édité par flo850 le 07-03-2013 à 12:17:12
---------------