Sto costruendo un app per iPhone e iPad utilizzando PhoneGap e jQmCome disattivare il comportamento predefinito di un ancoraggio in jQuery Mobile (iOS)
<div class="ui-block-a">
<a id="btnLink" href="#pageID" data-role="button"></a>
</div>
e funziona bene, ma quando l'eseguo sulla dispositivo (non provare il simulatore) e premere a lungo, ottengo il menu predefinito di iPhone per un collegamento in un normale browser per aprire o copiare il collegamento.
Come disattivare questa funzione predefinita nella mia app?
ho provato questi senza successo:
$("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 mi legano su 'taphold' Vedo ancora il menu su una lunga pressione, ma fare clic su Annulla vedo il log della console dopo: [ "prevenire lunga stampa", "taphold"]
$("a").bind('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault(); // long press menu still apear
});
se uso delegato sulla manifestazione 'taphold' in questo modo:
$("a").delegate('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault();
});
risolverà ° Problema, ma non posso più allegare alcun evento, quindi non funzionerà più nessuno dei miei pulsanti.
$('#btnLink').bind("click", function() {
$.mobile.changePage('mypage', 'slide'); // won't fire any more because of the delegate before
});
so che delegato verrà applicata su tutti gli elementi, ora e in futuro, ma penso che io sono sempre vicino alla risposta, ma non ancora.
Grazie in anticipo
fa 'taphold' richiede jQuery mobile? –