У меня есть SVG, внутри которого есть больше SVG с переменным числом прямых элементов внутри них, все из которых генерируются из объекта данных. Вот общая иерархия:Почему происходит событие mouseenter/mouseleave при вводе/выходе дочерних элементов в SVG?
<svg class="parent-svg">
<svg class="child-svg">
<rect />
<rect />
</svg>
<svg class="child-svg">
<rect />
<rect />
</svg>
</svg>
Я обязан MouseEnter/MouseLeave события в .child-svg
элементов, но я нахожу, что события стрельбы, когда моя мышь идет на пробельных в между <rect>
элементами. Мое понимание mouseenter/mouseleave заключается в том, что они не должны срабатывать, когда курсор вводит/оставляет дочерние элементы - это похоже на поведение, которое вы ожидаете от mouseover/mouseout. И, конечно же, мне хотелось бы, чтобы события mouseenter/mouseleave запускались только после того, как я оставил каждый раздел (который я описал с помощью цветов).
Вот соответствующий скрипку: http://jsfiddle.net/ysim/yVfuK/4/
Edit: Я пытался давая .child-svg
элементы высоту и ширину, но это не похоже на работу либо: http://jsfiddle.net/ysim/gMXuU/3
Edit: Вот скрипка с решением, исправлена в соответствии с предложением @ pornel: http://jsfiddle.net/ysim/HUHAQ/
Спасибо!
Какой браузер вы с помощью? Кажется, у меня есть желаемый эффект. – musicnothing
Читайте о распространении события http://stackoverflow.com/questions/4616694/what-is-event-bubbling-and-capturing – Givi
Действительно ли это SVG-in-SVG, а не ''? –
Kornel