Функция Onclick не работает на мобильном телефоне - PullRequest
0 голосов
/ 21 сентября 2019

Я новичок в JS, и я пытаюсь получить этот результат (https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_popup), но у меня есть некоторые проблемы с мобильным представлением этого кода ... он хорошо работает на любых других устройствахно не на iPhone (x, 8 и т. д.). Как это возможно?

function myFunction() {
    var popup = document.getElementById("myPopup");
    popup.classList.toggle("show");
}

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

Если проблема возникает именно в Safari, это может быть связано с отсутствием cursor: pointer; в вашем CSS.

Safari не любит запускать ваши функции для элементов HTML, которые не следуют определенные условия .

Кстати, даже если они это сделают (согласно моему личному опыту), это не гарантирует, что ваши слушатели действительно будут срабатывать.

Это происходит из-за того, чточто браузеры, такие как Safari или IE, кажутся скорее хорошей шуткой, чем хорошим браузером.

Как с этим справиться?

Что ж, в IRL мы в основном используем некоторые библиотеки (например,Vue или React), которые выполняют кросс-браузерную оптимизацию лучше, чем мы.

В вашем простом сценарии использования вы можете преобразовать элемент myPopup в кнопку с нулевым стилем.

Все основные браузеры работают более или менее нормально с кнопками.

0 голосов
/ 22 сентября 2019

Это может произойти, потому что в мобильных устройствах событие onClick не должно работать, мобильные устройства имеют события touch , но вместо использования onClick вы можете попробоватьиспользуйте для использования нажмите и это может сработать (я так думаю).Если это помогло, дайте мне знать

...