У меня есть ситуация, когда я нашел решение, но я хотел бы понять, почему мое решение работает.Я работаю с multiBarChart NVD3 и реализую дискретный вид гистограммы, когда пользователь отображает данные только в одном измерении.
В этом процессе этот блок кода был тем, что я использовал для нацеливания на прямоугольник SVG и измененияего цвет:
d3.select("svg .nv-series-0").select("rect:nth-child(2)").attr("style","fill: #d34356; stroke: #d34356;");
Приведенный выше код корректно изменил цвет, но удалил (или повредил) данные, привязанные к событиям прямоугольника и наведения мыши для этого прямоугольника, больше не работали.Без этой настройки событие mousover сработало корректно, показывая данные для прямоугольника.
Я изменил выбор d3 в коде так:
d3.select("svg .nv-series-0 rect:nth-child(2)").attr("style","fill: #d34356; stroke: #d34356;");
И это работает, данные для событий наведения мышивсе еще там для прямоугольника.
Может кто-нибудь объяснить, как и почему исходный d3.select, за которым следует другой .select, повлиял на данные, которые были переданы для события mouseover? *