Установка событий-указателей на SVG-путь с использованием Javascript - PullRequest
0 голосов
/ 10 июля 2020

Я использую JavaScript -функцию для включения и отключения pointer-events одним щелчком мыши. <svg> является потомком дочернего элемента <main> -элемента.

Моя первая попытка была:

let el = jQuery( "main" );
el.css({ "pointer-events": "none" });

Это должно сработать, потому что свойство pointer-events наследуется. И это так. События-указатели отключены для всех элементов, кроме path в моем svg. Затем, поработав некоторое время в Google, я обнаружил, что pointer-events in svg является атрибутом элемента.

Итак, я попробовал:

let el = jQuery( "main" );
console.log( el.find( "path" ).attr( "pointer-events" ) ); // which returns: undefined

el.css({ "pointer-events": "none" });
el.find( "path" ).attr( "pointer-events", "none" );
console.log( el.find( "path" ).attr( "pointer-events" ) ); // which returns: none

Итак, атрибут устанавливается, но это не работает. Путь по-прежнему реагирует на hover - и click -события.

Теперь я застрял, потому что не понимаю этого.

1 Ответ

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

Это был довольно глупый вопрос. Из-за ошибки в другом месте кода это не сработало.

Хотя очевидно, что svg не наследует свойство pointer-events. Но el.find( "path" ).css( "pointer-events": "none" ); работает отлично.

@ Репа совершенно прав в своем комментарии. Если вам действительно нужна помощь, вы хотите опубликовать весь соответствующий код.

Надеюсь, это поможет кому-то в будущем.

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