Я изо всех сил пытаюсь отключить событие браузера по умолчанию. Ничто из того, что я нашел в Google, не оказало никакой помощи. У меня есть только Android 4.4.4 для мобильных и Chrome dev для тестирования. Я пробовал исправления CSS, такие как webkit-touch-callout и другие, но, видимо, они не работают для Android, также они не работают в инструментах Chrome dev. Я также попытался обнаружить правый щелчок, (e.button == 2), он не работает.Отключить событие по умолчанию по умолчанию, перекрестное устройство
Я придумал решение, но оно решает одну проблему и создает другую. Я просто хочу иметь настраиваемое действие для события «длительное нажатие» для выбранных якорей, и я не хочу, чтобы всплывающее окно по умолчанию отображалось (открывается на новой вкладке, копирует адрес ссылки и т. Д.) Это то, что я сделал:
var timer;
var tap;
$("body").on("touchstart", my_selector, function(e) {
e.preventDefault();
timer = setTimeout(function() {
alert('taphold!');
tap=false;
},500);
});
$("body").on("touchend", my_selector, function() {
if(tap) alert('tap');
else tap=true;
clearTimeout(timer);
});
Он успешно отключает событие taphold по умолчанию и контекстное меню не отображается. Однако он также отключает полезные события, например, салфетки. Ссылки находятся в вертикальном меню, а меню выше экрана, поэтому пользователю нужно прокручивать его. Если он попытается прокрутить, начиная с якоря, он не будет прокручиваться, он будет предупреждать «нажмите!».
Любые идеи о том, как я могу отключить отключение по умолчанию или как я могу исправить этот код, чтобы он отключил только события «кратковременного нажатия» и опустил события по умолчанию, связанные с удалением?
Редактировать: Теперь я подумал об установке тайм-аута, если указатель находится в том же месте, что позволяет говорить 100 мс, а затем предотвратить действие по умолчанию. Однако e.preventDefault(); не работает внутри setTimeout callback.
Итак, теперь я просто спрашиваю про самый простой пример. Могу ли я предотвратить действия по умолчанию после определенного количества времени (пока прикосновение все еще есть).
И это моя проблема в скрипке. http://jsfiddle.net/56Szw/593/ Это не мой код, я получил от этого http://www.gianlucaguarini.com/blog/detecting-the-tap-event-on-a-mobile-touch-device-using-javascript/
Обратите внимание, что в то время как ударяя коробку вверх и вниз, прокрутка не работает.