Я делаю веб-приложение, которое нужно запускать как на мобильных устройствах, так и на немобильных устройствах. В моем приложении у меня есть несколько значков, которые пользователь может щелкнуть, чтобы отправить сообщение на сервер с помощью веб-карт.
Мой код выглядит примерно так:
$('.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 */ });
Проверьте приведенную ниже демонстрацию на своем рабочем столе и на мобильном устройстве.
демонстрация