Iphone click jquery не работает

Как заставить мою функцию «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.

Источник

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

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.10.15.40479

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

$(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.

Источник

$ (document) .click () некорректно работает на iPhone. JQuery

Эта функция отлично работает на IE, Firefox и Chrome, но на iPhone она работает только при нажатии . Нажатие на страницу (где угодно, но на img) не запускает событие.

Часть HTML является чрезвычайно простой и не должна быть проблемой.

8 ответов

Добавление в следующий код работает.

Проблема заключается в том, что iPhone не вызывает события кликов. Они поднимают «сенсорные» события. Большое спасибо яблоко. Почему они не могут просто держать его стандартным, как все? Во всяком случае, спасибо Нико за подсказку.

Короткий ответ:

Более длинный ответ:

Я предполагаю, что у вас есть произвольный HTML, который не доступен для кликов — например, панель, содержащая текст и изображения, которые нельзя обернуть с помощью . Я узнал об этой проблеме, когда у меня была такая панель, которую я хотел полностью кликать.

Читайте также:  Как можно починить матрас надувной

Чтобы обнаружить клик в любом месте этого div, я использую jQuery с атрибутом data-href html, который показан выше (этот атрибут изобрел сам и не является стандартным атрибутом данных jQuery или HTML).

Это будет работать на вашем настольном браузере, но не на iPad, независимо от того, сколько вы нажимаете.

У вас может возникнуть соблазн изменить обработчик событий с click на click touchstart — и это действительно вызывает обработчик события. Однако, если пользователь хочет перетащить страницу вверх (для прокрутки), они тоже вызовут ее — это ужасный пользовательский интерфейс. [Возможно, вы заметили это поведение с помощью скрытых рекламных баннеров]

Ответ невероятно прост: Просто установите css cursor: pointer .

Это имело дополнительное преимущество для пользователей настольных компьютеров, чтобы указать, что область доступна с помощью значка руки.

Источник

$(document).click() не работает корректно на iPhone. jquery

Эта функция отлично работает на IE, Firefox и Chrome, но когда она находится на iPhone, она будет работать только при нажатии на . Нажатие на страницу (где угодно, но не на img) не приведет к запуску события.

Часть HTML чрезвычайно проста и не должна быть проблемой.

8 ответов

Я использовал эффект плавной прокрутки jquery, ничего fancy..just jQuery. and он, кажется, не работает iPad или iPhone или любой другой tablets..the url здесь: http://teothemes.com/wp/viewpoint / и это код, который я использовал для jquery smooth scroll: jQuery(document).ready(function() <.

У меня есть следующее на веб-сайте:

Короткий ответ:

Более длинный ответ:

Я предполагаю, что у вас есть произвольный HTML, который не является кликабельным — например, панель, содержащая текст и изображения, которые не могут быть обернуты . Я узнал об этой проблеме, когда у меня была такая панель, что я хотел быть полностью кликабельным.

Чтобы обнаружить щелчок в любом месте этого div, я использую jQuery с атрибутом data-href html, который показан выше (этот атрибут придуман мной и не является стандартным атрибутом данных jQuery или HTML.)

Это будет работать в вашем настольном браузере, но не iPad, независимо от того, сколько вы нажимаете.

У вас может возникнуть соблазн изменить обработчик событий с click на click touchstart — и это действительно запускает обработчик событий. Однако, если пользователь захочет перетащить страницу вверх (для прокрутки), он тоже вызовет ее, что является ужасным пользовательским опытом. [возможно, вы заметили такое поведение с помощью скрытой баннерной рекламы]

Ответ невероятно прост: просто установите css cursor: pointer .

Это имело дополнительное преимущество для пользователей настольных компьютеров, чтобы указать, что область доступна для кликабельности с помощью значка руки.

Возможно, это решение не подходит для вашей работы, и, как описано в ответах, это не лучшее решение для применения. Пожалуйста, проверьте другие исправления от других пользователей.

Добавление следующего кода работает.

Проблема в том, что iPhones не вызывает события щелчка. Они поднимают «touch» событие. Большое спасибо apple. Почему они не могли просто придерживаться стандарта, как все остальные? В любом случае, спасибо Нико за совет.

Читайте также:  Что делать если не работает роблокс мульти

У меня есть этот jquery, который очищает форму входа при нажатии, которая работает на iPhone $(document).on(‘click’, ‘.error2’, function() < $(this).remove(); return false; >); Это прекрасно работает на моем iPhone. Это однако — $(document).on(‘click’, ‘.register-error’, function() <.

У меня есть выпадающий список ссылок, которые я конвертирую в поле выбора При загрузке страницы . Это работает правильно на настольных компьютерах/ноутбуках, но не работает на iphone/ipad. Я совершенно новичок в этом деле, поэтому не знаю, что может быть причиной проблемы, потому что код, кажется.

попробуйте это, применимо только к iPhone и iPod, поэтому вы не заставляете все синеть на chrome или firefox mobile;

в принципе, на iOS вещи по умолчанию не «clickable»-они «touchable» (pfffff), поэтому вы делаете их «clickable», указывая на них курсором указателя. в этом есть смысл, верно??

CSS Cursor:Pointer; -отличное решение. FastClick https://github.com/ftlabs/fastclick -это еще одно решение, которое не требует изменения css, если по какой-то причине вы не хотели Cursor:Pointer; для элемента. Я все равно использую fastclick сейчас, чтобы устранить задержку в 300 мс на устройствах iOS.

На мобильном устройстве iOS событие щелчка не отображается в теле документа и, следовательно, не может использоваться с событиями .live(). Если вам нужно использовать не собственный элемент с возможностью щелчка, такой как div или раздел, используйте cursor: pointer; в вашем css для не зависания на рассматриваемом элементе. Если это уродливо, вы могли бы заглянуть в delegate().

Вместо этого используйте jQTouch — его мобильную версию jQuery

Похожие вопросы:

Может ли кто-нибудь объяснить мне, почему это работает в браузере, но не на мобильных устройствах, таких как Apple iPhone. На iPhone я никогда не получаю hello из оповещения. Почему?

Я запускаю событие click при нажатии на другую кнопку с помощью jQuery(.Classname).click() , но оно не работает с помощью Safari на iPhone. Пример: jQuery(.button1).click(function()<.

Я использовал эффект плавной прокрутки jquery, ничего fancy..just jQuery. and он, кажется, не работает iPad или iPhone или любой другой tablets..the url здесь: http://teothemes.com/wp/viewpoint / и.

У меня есть следующее на веб-сайте:

У меня есть этот jquery, который очищает форму входа при нажатии, которая работает на iPhone $(document).on(‘click’, ‘.error2’, function() < $(this).remove(); return false; >); Это прекрасно.

У меня есть выпадающий список ссылок, которые я конвертирую в поле выбора При загрузке страницы . Это работает правильно на настольных компьютерах/ноутбуках, но не работает на iphone/ipad. Я.

Я пробую некоторые основы JQuery на этом сайте , но когда я пытаюсь щелкнуть станцию с помощью функции jQuery click, она ничего не делает. Я немного исследовал, и некоторые говорят, что добавление.

Обновление: код был в порядке. В 40-м году возникла проблема. Я использовал position : fixed; и не устанавливал свойство left . Когда я добавил left: 0; , это сработало отлично. Спасибо всем вам.

Источник

Оцените статью