Para un sitio web, quiero mostrar un menú contextual personalizado cuando un usuario "presiona largamente" la pantalla. Creé un oyente jQuery Longclick en mi código para mostrar un menú contextual personalizado. Se muestra el menú contextual, pero también se muestra el menú contextual predeterminado del iPad. Traté de evitar esto mediante la adición de un preventDefault()
al evento en mi oyente, pero esto no funciona:Prevención del menú contextual predeterminado en longpress/longclick en el dispositivo móvil Safari (iPad/iPhone)
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
Preguntas
- Se puede prevenir menú de contexto por defecto del iPad para mostrar?
- ¿Se puede hacer mediante el uso del complemento jQuery Longclick?
El plugin Longclick tiene un manejo específico para el iPad (suponiendo por este fragmento de it's source code):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
así que supongo que esto responde a la segunda pregunta (suponiendo que el plug-in utiliza la correcta evento).
está trabajando en jsfiddle.net pero no funciona en la página local ¿Por qué? – RGA
¿Cargaste http://code.jquery.com/jquery-1.8.2.js en tu página? –
sí, lo hice pero no funcionó para mí. – RGA