Cómo deshabilitar el comportamiento predeterminado de un ancla en jQuery Mobile (iOS)

Estoy creando una aplicación para iPhone y iPad usando PhoneGap y jQM

<div class="ui-block-a">
   <a id="btnLink" href="#pageID" data-role="button"></a>
</div>

y funciona bien, pero cuando lo ejecuto en el dispositivo (no probé el simulador) y presiono prolongadamente, obtengo el menú predeterminado de iPhone para un enlace en un navegador normal para abrir o copiar el enlace.

¿Cómo puedo deshabilitar esta característica predeterminada en mi aplicación?

Intenté esto sin éxito

$("a").click(function(event) {
  event.preventDefault(); // long press menu still apear
});


$("a").bind('click',function(event) {
console.log(['preventingclick',event.type]);
event.preventDefault(); // long press menu still apear
});

si me encuadro en 'taphold', aún veo el menú con una presión prolongada, pero después de hacer clic en cancelar, veo el registro de la consola: ["prevenir pulsación larga", "taphold"]

$("a").bind('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault(); // long press menu still apear
});

si uso delegado en el evento 'taphold' como este:

$("a").delegate('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault();
});

solucionará el problema, pero ya no puedo adjuntar ningún evento, así que ninguno de mis botones funcionará después de eso.

$('#btnLink').bind("click", function() {
$.mobile.changePage('mypage', 'slide'); // won't fire any more because of the delegate before
});

Sé que el delegado se aplicará a todos los elementos ahora y en el futuro, pero creo que me estoy acercando a la respuesta, pero aún no.

Gracias por adelantado

Respuestas a la pregunta(5)

Su respuesta a la pregunta