Cómo evitar el menú de contexto predeterminado en longpress / longclick en Mobile Safari (iPad / iPhone)

Para un sitio web, quiero mostrar un menú contextual personalizado cuando un usuario "presiona prolongadamente" la pantalla. He creado unjQuery Longclick escucha 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 agregando unapreventDefault() al evento en mi oyente, pero esto no funciona:

function showContextMenu(e){
  e.preventDefault();
  // code to show custom context menu
}

$("#myId").click(500, showContextMenu);

Preguntas

¿Se puede evitar que se muestre el menú contextual por defecto del iPad?¿Se puede hacer usando el plugin jQuery Longclick?

El plugin Longclick tiene un manejo específico para el iPad (asumiendo este fragmento de código dees el código fuente):

if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
  $(this)
  .bind(_mousedown_, schedule)
  .bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
  .bind(_click_, click)
}

Entonces asumo que esto responde a mi segunda pregunta (asumiendo que el complemento usó el evento correcto).

Respuestas a la pregunta(6)

Su respuesta a la pregunta