D3.js добавляет действие click к кругу компоновки сил?

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

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

Ответ 1

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, на который нажата кнопка.