Событие прослушивания клика не срабатывает на элементе SVG (значок шрифта потрясающий) - PullRequest
0 голосов
/ 11 июля 2019

На странице с классом close есть значки (значок представляет собой x, который закрывает div).В браузере шрифт загружается в HTML как элемент <svg>, а элемент <path> - как дочерний.Используя slim, код выглядит следующим образом:

= icon :times, class: 'close'

Прослушиватель событий добавляется к значкам в JS следующим образом:

(function($) {

  function closeDialog() { ... }

  $(document).ready(function() {
    $('.close').on('click', closeDialog);
  }

})(jQuery);

Послестраница загружается, событие не запускается при нажатии на значок X.Однако, если я добавлю класс close к любому другому элементу, кроме значка font-awesome, он будет срабатывать правильно при нажатии.Кроме того, если я копирую и вставляю JS в консоль и запускаю ее, то щелчок по элементу SVG вызывает событие.

В настоящее время мое решение состоит в том, чтобы обернуть SVG в div и присвоить div класс close.Это работает, но я хотел бы понять, почему оригинал не.

Рабочее решение:

.close
  = icon :times

1 Ответ

0 голосов
/ 11 июля 2019

Попробуйте проверить здесь, здесь есть информация о том, как обрабатываются события щелчка для элементов SVG.Если для него установлено значение none или какой-либо другой нечетный параметр, он не будет обнаруживать щелчки на SVG

https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...