Как обрабатывать клики по метке диаграммы NVD3?

#charts #nvd3.js

#Диаграммы #nvd3.js

Вопрос:

Чтобы обрабатывать клики по фрагментам круговой диаграммы NVD3, вы можете сделать следующее:

 var chart = nv.models.pieChart()
... 
chart.pie.dispatch.on("elementClick", function(e) {
    var pie_sector_name = e.data.label;
    // do something;
});
  

Тем не менее, я получаю клики, когда выбраны фрагменты круга. Возможно ли обрабатывать клики, когда выбраны метки диаграммы? Кусочки пирога иногда могут быть настолько крошечными, что на них невозможно щелкнуть.

Спасибо.

Ответ №1:

  d3.selectAll(".nv-pieLabels").on("click", function () {
    alert("clicked");
 });
  

Комментарии:

1. Когда создается круговая диаграмма, ее метки имеют класс ‘nv-pieLavels’ (элементы ‘g’ в диаграмме ‘svg’). Вы можете выбрать их с помощью селектора d3 и обработать событие щелчка. По какой-то причине у меня это не работает:(

2. Дело в том, d3.selectAll(".nv-series") что работает (для элементов легенды), а d3.selectAll(".nv-pieLabels") (для меток диаграмм) нет. Странно