2012-01-31 16 views
10

Sto lavorando per creare un grafico non orientato con layout di forza. Inoltre, provo a scacciare il colore di ogni cerchio (nodo) con l'evento click. C'è qualche idea di aggiungere tale evento agli elementi del cerchio. Sto scrivendo questo codice ma non funziona.d3.js aggiungendo azioni di clic a un cerchio del layout di forza?

vis.selectAll("circle.node").on("click", function(d){ 
    vis.select(d).attr(r, 25) 
    .style("fill","lightcoral") 
    .style("stroke","red"); 
}); 
+0

Intendevi 'attr ('r', 25)'? – Dogbert

+0

Ho bisogno di fare tali cambiamenti attr ma non posso selezionare il nodo che è selezionato. Quello che sto cercando di usare "d" come func. argomento per scegliere cerchio ma non funziona. – erogol

risposta

17

select(d) fa riferimento ai dati, non all'elemento. È necessario select(this)

vis.selectAll("circle.node").on("click", function(){ 
      d3.select(this).attr('r', 25) 
       .style("fill","lightcoral") 
       .style("stroke","red"); 
     }); 
2

vis.select(this) mi dà un'eccezione DOM. d3.select(this) funziona per me. È inoltre possibile utilizzare d3.event.target per accedere all'elemento DOM su cui si fa clic.

Problemi correlati