2012-01-31 2 views
10

Я работаю над созданием неориентированного графика с компоновкой силы. Кроме того, я пытаюсь изменить цвет каждого круга (узла) с помощью события click. Есть ли идея добавить такое событие в элементы окружности. Я набираю этот код, но он не работает.d3.js добавляет действие щелчка к кругу макета силы?

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

Возможно, вы имели в виду 'attr ('r', 25)'? – Dogbert

+0

Мне нужно сделать такие изменения attr, но я не могу выбрать выбранный узел. То есть я пытаюсь использовать «d» как func. аргумент для выбора круга, но он не работает. – erogol

ответ

17

select(d) ссылки на данные, а не на элемент. Вы должны 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) дает мне исключение DOM. d3.select(this) работает для меня. Вы также можете использовать d3.event.target для доступа к элементу DOM, на который нажата кнопка.