- Как заставить мою функцию «click» работать с iOS
- 5 ответов
- Событие ‘click’ не срабатывает на iPhone и некоторых мобильных браузерах – решение проблемы
- Окончательный рабочий код для вызова функции при клике мышкой или касании на мобильных (сенсорных) устройствах:
- Рабочий пример вызова функции при клике мышкой или касании на мобильных устройствах на CodePen:
- Комментарии (2) к “Событие ‘click’ не срабатывает на iPhone и некоторых мобильных браузерах – решение проблемы”
- $(document).click() not working correctly on iPhone. jquery [duplicate]
- 8 Answers 8
- jQuery on click not working on iPhone (touch devices)
- 4 Answers 4
- Not the answer you’re looking for? Browse other questions tagged javascript jquery ios iphone or ask your own question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Сайт jquery click не работает на iphone
- 2 ответа
- Похожие вопросы:
Как заставить мою функцию «click» работать с iOS
у меня есть набор Div, которые действуют как кнопки. Эти кнопки имеют простую функцию jQuery click (), которая работает во всех браузерах, кроме iOS.
Я не уверен, почему это не работает на iOS-очевидно, что в iOS нет «щелчка».
к сожалению, у меня нет устройства iphone, чтобы проверить это самостоятельно, но я получаю много жалоб от моих клиентов, которые хотят щелкнуть вещи, и ничего событие.
каков ключ к тому, чтобы заставить это работать?
5 ответов
клик»: означает, когда mousedown и mouseup событие происходит на том же элементе или элемент активируется с помощью клавиатуры.
С В JQuery Ошибка, есть работа вокруг , просто добавьте «cursor: pointer» для CSS элемента и события click будут работать так, как ожидалось. и вы даже можете увидеть это jQuery нажмите на Ios Для справки
на самом деле, принятый ответ не работал для меня. Я попытался использовать «курсор: указатель», onclick=» » и даже преобразовать элемент в якорный тег.
то, что я сделал, чтобы заставить его работать, — это привязать событие touchstart к событию click. Чтобы заставить его работать на всех платформах, мне пришлось к уродливому UA-спуфингу:
на основе Марек Это мой взгляд на это (немного подчистил):
есть еще много работы впереди для отрасли, когда дело доходит до стандартов.
EDIT:
не получилось на телефонах Android. Взял более жесткий подход:
также на основе ответ Марека, который адаптирует событие к устройству для запуска функции, вот код, который заставляет запускать клик на устройствах iOS, где сначала происходит событие touchstart:
вы можете использовать это:
другое решение-установить курсор элемента в указатель и работать с jQuery live и click event. Установите его в CSS.
Источник
Событие ‘click’ не срабатывает на iPhone и некоторых мобильных браузерах – решение проблемы
Часто в мобильной версии сайта используется кнопка типа “бургера” для вызова основного меню сайта. На эту кнопку вешается событие ‘click’ с обработчиком – вызовом функции, которая отобразит меню.
Например, такой очень упрощенный код:
При тестировании на десктопе в мобильном формате всё работает как надо, но в некоторых мобильных браузерах событие ‘click’ не срабатывает, и, соответственно, меню не открывается. Тогда к событию ‘click’ добавим событие ‘touchend’ для сенсорных устройств.
Получится такой код:
Теперь открытие меню работает на всех устройствах, но появляется другая проблема – теперь в некоторых других браузерах при одном клике функция срабатывает дважды и в случае с методом toggle мы получим при одном клике открытие и закрытие меню.
Связано это с тем, что событие ‘touchend’ в некоторых мобильных браузерах вызывается с задержкой (delay) в 300-350 мс между касанием и нажатием, чтобы увидеть, будет ли это двойное касание или нет, поскольку двойное касание было жестом для увеличения текста. И таким образом при одном клике срабатывает 2 события за 300ms сначала ‘click’ , а затем ‘touchend’ .
Для решения этой проблемы я видел множество примеров с флагами, фильтрами и кучей функций, а кто-то даже плагин написал, чтобы различать, было касание с помощью сенсора или это был клик мыши, но на самом деле, решается все гораздо проще, простым добавлением return false; .
Окончательный рабочий код для вызова функции при клике мышкой или касании на мобильных (сенсорных) устройствах:
Рабочий пример вызова функции при клике мышкой или касании на мобильных устройствах на CodePen:
See the Pen events ‘click touchstart’ by Denis (@deniscreative) on CodePen.0
Рекомендую к прочтению:
Комментарии (2) к “Событие ‘click’ не срабатывает на iPhone и некоторых мобильных браузерах – решение проблемы”
Гений, жаль только все остальные события тоже ломаться, к примеру переход по ссылке
Источник
$(document).click() not working correctly on iPhone. jquery [duplicate]
This function works perfectly on IE, Firefox and Chrome but when on the iPhone, it will only work when clicking on a . Clicking on the page (anywhere but on a img) wont fire the event.
The HTML part is extremely basic and shouldnt be a problem.
8 Answers 8
Short answer:
Longer answer:
I imagine that you have arbitrary HTML that is not clickable — such as a panel containing text and images that cannot be wrapped with . I found out about this problem when I had such a panel that I wanted to be entirely clickable.
To detect a click anywhere within this div I am using jQuery with a data-href html attribute which is shown above (this attribute is invented by myself and is not a standard jQuery or HTML data attribute.)
This will work on your desktop browser but not iPad no matter how much you click.
You may be tempted to change your event handler from click to click touchstart — and this indeed does trigger the event handler. However if the user wants to drag the page up (to scroll) they’ll trigger it too — which is a terrible user experience. [you may have noticed this behavior by sneaky banner ads]
The answer is incredibly simple: Just set the css cursor: pointer .
This had the added benefit for desktop users to indicate the area is clickable with a hand icon.
Источник
jQuery on click not working on iPhone (touch devices)
Can anyone please explain to me why this is working in the browser but not on mobile devices like Apple’s iPhone. On iPhone, I never get the hello from the alert. Why?
JS:
4 Answers 4
By default, divs are not a «clickable» elements. But adding cursor: pointer; makes iOS treat it as clickable.
So all you need to do is add
to your CSS and then it will work.
I used the touchstart event with the click , it did the job for me
The Javascript alert() and more bugs are fixed as of iOS 7.0.3.
Click events don’t work like expected on iOS. You can use something like touchstart instead, or use a weird iOS quirk: in your CSS, set .close
Not the answer you’re looking for? Browse other questions tagged javascript jquery ios iphone or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.12.7.40929
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Сайт jquery click не работает на iphone
Я запускаю событие click при нажатии на другую кнопку с помощью jQuery(«.Classname»).click() , но оно не работает с помощью Safari на iPhone.
2 ответа
Когда я загружаю свой сайт на свой iPhone, он не показывает этот сайт. Он показывает только это >. Он отлично работает на компьютере и моем iPad. Есть идеи, что это может быть? Мобильное приложение находится по адресу http://yourguest.co.uk/iphone/ приложение / first. html .
У меня есть этот jquery, который очищает форму входа при нажатии, которая работает на iPhone $(document).on(‘click’, ‘.error2’, function() < $(this).remove(); return false; >); Это прекрасно работает на моем iPhone. Это однако — $(document).on(‘click’, ‘.register-error’, function() <.
попробуйте использовать метод .trigger().
Добавьте исправление CSS к вашей кнопке,
Считайте, что это подсказка; если элемент не привязан с помощью $.click() , используйте объект DOM, например
Похожие вопросы:
Эта функция отлично работает на IE, Firefox и Chrome, но когда она находится на iPhone, она будет работать только при нажатии на . Нажатие на страницу (где угодно, но не на img) не.
Меня попросили залатать довольно плохо написанный адаптивный веб-сайт на работе, и я был поставлен в тупик проблемой с событием jQuery click. Событие отлично работает на iPhone в ландшафтном режиме.
У меня нет конкретного блока кода для публикации здесь, мой сайт включает в себя довольно много javascript/jquery, который отлично работает на android и современных настольных браузерах (включая.
Когда я загружаю свой сайт на свой iPhone, он не показывает этот сайт. Он показывает только это >. Он отлично работает на компьютере и моем iPad. Есть идеи, что это может быть? Мобильное приложение.
У меня есть этот jquery, который очищает форму входа при нажатии, которая работает на iPhone $(document).on(‘click’, ‘.error2’, function() < $(this).remove(); return false; >); Это прекрасно.
У меня очень странная проблема. Я работаю над навигацией для мобильного сайта. Когда вы нажимаете на ссылку ‘Menu’, я хочу, чтобы навигационное меню скользило вниз, а затем закрывалось, когда ‘Menu’.
У меня есть следующее на веб-сайте:
Может ли кто-нибудь объяснить мне, почему это работает в браузере, но не на мобильных устройствах, таких как Apple iPhone. На iPhone я никогда не получаю hello из оповещения. Почему?
Обновление: код был в порядке. В 40-м году возникла проблема. Я использовал position : fixed; и не устанавливал свойство left . Когда я добавил left: 0; , это сработало отлично. Спасибо всем вам.
У меня есть FontAwesome значок с классом=’className’. и нижеприведенный сценарий jQuery.
Источник