Событие click для svg

Необходимо разобраться, как обработать событие click на кнопке с элементом object.

<button class="clear-btn" id="switch-rules">
  <object data="img/Polygon 1.svg" type="image/svg+xml">
    <img src="img/Polygon 1.svg" alt="Вперёд" />
  </object>
</button>

Проблема заключается в том, что у SVG-файла есть свои стили при :hover. Поэтому нельзя просто добавить к элементу object pointer-events:none;, так как при наведении на SVG стили не будут изменяться.

<svg width="21.14" height="36.506" fill="none" xmlns="http://www.w3.org/2000/svg">
  <style>
    svg:hover { 
      cursor: pointer;
    }
    svg:hover path{
      fill: #B6C4D9;
      transition-duration: 0.5s;
    }
  </style> 
  <path d="m1.317 36.506 6.805-5.954 12.335-10.794c.223-.194.393-.426.512-.695.114-.257.171-.528.171-.81 0-.282-.057-.553-.17-.81-.12-.27-.29-.5-.513-.695L8.122 5.954 1.317 0 0 1.506 6.805 7.46 19.14 18.253 6.805 29.046 0 35l1.317 1.506Z" fill="#FFF" fill-rule="evenodd"/>
</svg>

Да, можно добавить код SVG непосредственно в DOM, но в этом случае SVG будет загружаться заново при каждом использовании, в то время как при использовании элемента object он кэшируется. Да и сам код захламляется.

Важно, чтобы событие click вызывает не просто переход по ссылке, а полноценную функцию, что усложняет задачу.


Ответы (0 шт):