javascript - MS Edge can't detect delegated events for <use> SVG elements? -


i think i've found troubling bug ms edge impacts on dynamically created svg <use> elements. edge seems able detect directly bound events, i.e. $('.use').on('click', ...), delegated events $('body').on('click', 'use', ...) ignored.

it illustrated js fiddle (tested in chrome, both bindings in work , in edge delegated binding doesn't work):
https://jsfiddle.net/lr0arahb/

does have insight on issue, , knows of possible workaround? foremost, i'm looking solution can still use <use> elements it's imperative our spa.

i have found edge 13. it's definetly hack rather solid solution work around put svg in container , used transparent pseudo-element cover svg. way pseudo-element gets click rather svg.

example svg icon used in button:

<button class="close" type="button">   <svg role="img" class="icon icon--close">     <use xlink:href="icons.svg#close" />   </svg> </button> 

css fix:

.close {   /* make pseudo-element relative parent element */   position: relative; }  .close:after {   /* cover button pseudo-element svg can't clicked */   content: '';   position: absolute;   top: 0;   left: 0;   right: 0;   bottom: 0; } 

you can use :before or :after pseudo-elements.


Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

javascript - Get parameter of GET request -

javascript - Twitter Bootstrap - how to add some more margin between tooltip popup and element -