Использование jquery mobile tap вместо щелчка

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

Мой код выглядит примерно так:

$('.button-container').on('tap', '.sender', function() { socket.send('Message'); }); 

Использование «tap» вместо «click» выполняется для поддержки iPad (и других мобильных устройств), но поскольку это похоже на хак, у меня есть несколько проблем.

«Tap», похоже, работает с моими тестовыми браузерами, Safari 7, Chrome 34 и Firefox 26 (все не мобильные), но как поддерживает другие немобильные браузеры?

Также есть ли какие-либо известные проблемы с использованием «нажмите» над «кликом» для немобильных браузеров?

Специальные события jQuery Mobile, т. taphold vclick , taphold , vclick … и т. Д., Первоначально являются событиями touch и mouse, преобразованными в специальные события.

Например, tap и vclick – это touchstart / touchend или mousedown / mouseup .

При загрузке jQuery Mobile он проверяет, поддерживает ли браузер, и соответственно события преобразуются в события мыши или события касания .

Вы можете переключаться между событиями в зависимости от поддержки сенсорного экрана браузера. Для не-сенсорных браузеров используйте click и те, которые поддерживают touch , используйте tap .

При запуске проверьте $.support.touch , он вернет true ( tap ) или false ( click ).

 var custom_event = $.support.touch ? "tap" : "click"; $(document).on(custom_event, "element", function () { /* code */ }); 

Проверьте приведенную ниже демонстрацию на своем рабочем столе и на мобильном устройстве.

демонстрация

Intereting Posts
Не удалось обновить диспетчер событий AppWidget Найти местоположение звонящего во время разговора по телефону с помощью Android Рисование DrawableCompat не работает на pre-Lollipop Как перенести представление на передний план без вызова метода bringToFront ()? Внедрение родового класса с кинжалом Android: получите учетную запись Google Play, связанную с выставлением счетов в приложении. NullPointerException в HardwareRenderer Ошибка ProcessException при выполнении /build-tools/19.1.0/aapt.exe с аргументами Пример Простой пример Gson.fromJson не работает Android – ширина и высота растрового изображения без загрузки Ошибка: Android Pre Dex: Android SDK не указан Анимация между действиями и общими взглядами: glitchy / hack в конце анимации? Нужно ли мне использовать «Приобретать покупку», если моему приложению нужна только одна покупка времени? Не удалось найти свойство 'aild' в исходном наборе main Session.getActiveSession () возвращает null при запуске приложения, хотя я подключен