blackseabreathe
@blackseabreathe
brackets

Как можно отловить тап на сенсорном телефоне?

Привет. Сделал мобильное меню, сделал чтобы закрывалось при клике вне его и вне его дочерних элементов.

$(document).on('click', function (e) {
var container2 = $(".mobile-menu");
if (container2.has(e.target).length === 0){
$('.mobile-menu').addClass('menu-closed');
$('.mobile-menu').removeClass('menu-open').fadeOut(500);
$('body').removeClass('ovrfl');}});

На десктопе все круто работает как надо, но на телефоне нет mouseup, пробовал приписать "tap" вместо "mouseup", но что-то не фурычит.

"click" использовать не вариант в моем случае. Кто-нить подскажет как пишется код с событием "tap" или вроде того? Типа если был тап вне дива, то к меню добавляем класс 'menu-closed'???
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
hummingbird
@hummingbird
<canvas id="canvas" width="600" height="600" style="border:solid black 1px;">
	Ваш браузер не поддерживает элемент canvas.
</canvas>
<br>
<button onclick="startup()">Инициализировать</button>
<br>
Log: <pre id="log" style="border: 1px solid #ccc;"></pre>

function startup() {
	var el = document.getElementsByTagName("canvas")[0];
	el.addEventListener("touchstart", handleStart, false);
	el.addEventListener("touchend", handleEnd, false);
	el.addEventListener("touchcancel", handleCancel, false);
	el.addEventListener("touchmove", handleMove, false);
	log("initialized.");
}


Полезные ссылки:
https://developer.apple.com/library/content/docume...
https://developer.mozilla.org/en-US/docs/Web/API/T... (или на русском)
tutorials.jenkov.com/responsive-mobile-friendly-we...
www.stucox.com/blog/you-cant-detect-a-touchscreen
www.javascriptkit.com/javatutors/touchevents.shtml
https://github.com/pukhalski/tap
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы