Mam SVG, wewnątrz którego jest więcej SVG ze zmienną liczbą elementów rect wewnątrz nich, wszystkie generowane z obiektu danych. Oto ogólna hierarchia:Dlaczego zdarzenia mouseenter/mouseleave są uruchamiane podczas wprowadzania/opuszczania elementów potomnych w SVG?
<svg class="parent-svg">
<svg class="child-svg">
<rect />
<rect />
</svg>
<svg class="child-svg">
<rect />
<rect />
</svg>
</svg>
Mam związany mouseenter/mouseLeave zdarzenia do .child-svg
elementów, ale jestem stwierdzenia, że zdarzenia są wypalania gdy mój myszy przechodzi do spacji pomiędzy <rect>
elementów. Moje rozumienie mouseenter/mouseleave polega na tym, że nie powinny one strzelać, gdy kursor wchodzi/opuszcza elementy potomne - wydaje się to być zachowaniem, którego można się spodziewać po najechaniu myszą/myszką. I oczywiście chciałbym, aby zdarzenia mouseenter/mouseleave były uruchamiane tylko wtedy, gdy opuściłem każdą sekcję (którą wybrałem za pomocą kolorów).
Oto odnośny skrzypce: http://jsfiddle.net/ysim/yVfuK/4/
Edit: Próbowałem dając .child-svg
elementy wysokość i szerokość, ale nie wydają się działać albo: http://jsfiddle.net/ysim/gMXuU/3
Edit: Oto skrzypce z rozwiązaniem, naprawione zgodnie z sugestią @ pornel: http://jsfiddle.net/ysim/HUHAQ/
Dzięki!
Co przeglądarka jesteś za pomocą? Wydaje się, że przynosi pożądany efekt. – musicnothing
Przeczytaj o propagacji zdarzeń http://stackoverflow.com/questions/4616694/what-is-event-bubbling-and-capturing – Givi
Czy to jest naprawdę SVG-w-SVG, a nie ''? –
Kornel