Карта Mouseover d3.js с разными слоями

Я сделал свой TopoJSON с тремя разными административными уровнями. Во время наведения мыши я хотел бы, чтобы объект с уровня 2 был выделен. Однако из-за многослойности объект мог обнаружить событие мыши только в том случае, если над ним нет объекта (скажем, уровня 3). Это проблема javascript, я мог бы просто изменить z-индекс каждого уровня (либо с помощью CSS, либо в сценарии). Я также попытался изменить порядок вызовов для каждого уровня. Однако я где-то читал, что у d3.js есть свой способ обработки объектов, поэтому упомянутые мной подходы, похоже, не работают.

Как мне убедиться, что нужный мне объект остается сверху?


person Rea G    schedule 28.05.2015    source источник
comment
SVG не имеет z-индекса — объекты отображаются в том порядке, в котором они добавляются в дерево DOM. Добавьте объекты, которые вы хотите отобразить сверху последними.   -  person Lars Kotthoff    schedule 28.05.2015
comment
@LarsKotthoff Я попробовал несколько комбинаций, и, как ни странно, первый объект, который я добавляю, появляется сверху.   -  person Rea G    schedule 28.05.2015
comment
Если у вас есть асинхронные обратные вызовы, порядок добавления элементов может быть не таким, как вы думаете. То же самое происходит, если вы используете элементы g для группировки других элементов.   -  person Lars Kotthoff    schedule 28.05.2015


Ответы (1)


По какой-то причине у меня сработало ПЕРВОЕ добавление объекта с прослушивателем событий. И убедитесь, что цвет заливки объекта существует (не установлен на none).

person Rea G    schedule 28.05.2015