Сложих прост код за събитие на допир и работата му в мобилни устройства, но не работи в лаптопа със сензорен екран.
$(document).ready(function(){
$(".navigation a").bind("touchstart",function(e){
alert("Touch start!");
});
});
Отговори:
0 за отговор № 1Актуализация: Проверете проекта jQuery Pointer Events Polyfill, който ви позволява да се свързвате с "показалеца", вместо да избирате между мишката и докосването. https://github.com/jquery/PEP
Обвържете и с двете, но направете флаг, така че функцията да задейства само веднъж на 100ms.
var flag = false;
$thing.bind("touchstart click", function(){
if (!flag) {
flag = true;
setTimeout(function(){ flag = false; }, 100);
// do something
}
return false
});
0 за отговор № 2
Може би е слушане на събития от мишката. Можете да добавите променлива за вашето събитие и да проверите дали нейните възможности могат да възпроизвеждат събития с докосване или не. Можете да използвате библиотеката за модернизиране на javascript, за да получите по-голяма точност в тази задача.
Позволете ми да ви покажа един пример:
var clickEvent = undefined;
if (Modernizr.touch) {
clickEvent = "touchstart";
} else {
clickEvent = "click";
}
$(document).ready(function(){
$(".navigation a").bind(clickEvent,function(e){
alert("It works!")
});
});