Como desabilitar o comportamento padrão de uma âncora no jQuery Mobile (iOS)

Eu estou construindo um aplicativo para iPhone e iPad usando PhoneGap e jQM

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

e funciona bem, mas quando eu corro no dispositivo (não tentei o simulador) e pressiono um toque longo, recebo o menu padrão do iPhone para um link em um navegador normal para abrir ou copiar o link.

Como posso desativar esse recurso padrão no meu aplicativo?

Eu tentei isso sem sucesso:

$("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
});

se eu ligar em 'taphold' ainda ver o menu em um toque longo, mas depois que eu clico em cancelar vejo o log do console: ["evitando pressionar longamente", "taphold"]

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

se eu usar delegado em evento 'taphold' assim:

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

corrigirá o problema, mas não posso mais anexar nenhum evento, portanto nenhum dos meus botões funcionará depois disso.

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

Eu sei que o delegado vai aplicar em todos os elementos agora e no futuro, mas acho que estou chegando perto da resposta, mas ainda não.

desde já, obrigado

questionAnswers(5)

yourAnswerToTheQuestion