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

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

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

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

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

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

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

Solutions Collecting From Web of "Использование jquery mobile tap вместо щелчка"

Специальные события 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 */ }); 

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

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