#ipad #svg
#iPad #svg
Вопрос:
У нас есть код, который загружает SVG через Ajax, а затем взаимодействует с помощью Javscript. В Mozilla и Safari 5, запущенных на ПК, мы получаем события щелчка, как и ожидалось в SVG. При запуске Safari iPad мы не получаем события щелчка. Согласно руководству разработчика Safari:
похоже, нам следует «сделать элементы интерактивными». В руководстве Apple предлагается сделать это, добавив обработчик onclick . Проблема в том, что все наши элементы SVG уже имеют обработчик щелчков, настроенный с помощью jQuery, и они все еще не щелкают.
Может быть, это потому, что SVG не является HTML, а доступ к DOM SVG не является доступом к HTML DOM? (Мы уже говорили об этом раньше.)
Как мы можем заставить iPad прослушивать события в элементах SVG?
Ответ №1:
Насколько мне известно, существует проблема с safari в соответствии с этим javascript — который обрабатывает canvas / SVG, Кажется, что щелчок и касание — это не одно и то же. https://github.com/kangax/fabric.js/blob/master/dist/all.js И SVG 1.1 не имеет других событий, кроме событий щелчка http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty У меня такой же интерес, поэтому я ищу ту же информацию…
Ответ №2:
Я смог заставить события щелчка работать на Ipad, используя jquery и javascript. но моя проблема в том, что svg размывается на iPad.
Мой svg встроен в объект html, затем я просто получаю к нему доступ, вызывая обычное событие click, на которое ссылается функция, которая обращается к компоненту svg через:
window.top.document.getElementById('elementId');
Комментарии:
1. Есть еще какие-нибудь подробности о том, как это на самом деле работает? Регистрируете ли вы обработчики событий касания для объектов, а затем переводите их в события щелчка, чтобы вручную повторно отправлять их в элементе SVG?