Предотвращение контекстного меню по умолчанию при длительном нажатии / длительном нажатии в мобильном Safari (iPad / iPhone)
Для веб-сайта я хочу показать пользовательское контекстное меню, когда пользователь "longpresses» экран. Я'мы создалиjQuery Longclick слушатель в моем коде, чтобы показать пользовательское контекстное меню. Контекстное меню отображается, но iPad 's контекстное меню по умолчанию также отображается! Я пытался предотвратить это, добавивpreventDefault()
на событие в моем слушателе, но это не работает:
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
Вопросы
Можете ли вы предотвратить iPad?контекстное меню по умолчанию, чтобы показать?Можно ли это сделать с помощью плагина jQuery Longclick?Плагин Longclick имеет некоторую специфическую обработку для iPad (исходя из этого фрагментаЭто'исходный код):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
Поэтому я предполагаю, что это отвечает на мой второй вопрос (при условии, что плагин использовал правильное событие).