Я создаю приложение для iPhone и iPad с помощью PhoneGap и jQM
<div class="ui-block-a">
<a id="btnLink" href="#pageID" data-role="button"></a>
</div>
и он работает нормально, но когда я запускаю его на устройстве (не пробовал симулятор) и нажимаю длинное нажатие, я получаю меню iPhone по умолчанию для ссылки в обычном браузере, чтобы открыть или скопировать ссылку.
как отключить эту функцию по умолчанию в моем приложении?
Я пробовал их без успеха:
$("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
});
если я привяжусь к 'taphold', я все еще вижу меню при длинном нажатии, но после того, как я нажал кнопку "Отмена", я вижу журнал консоли: [ "Предотвращение длительного нажатия", "taphold" ]
$("a").bind('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault(); // long press menu still apear
});
если я использую делегат в событии 'taphold' следующим образом:
$("a").delegate('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault();
});
устранит проблему, но я больше не могу присоединять какие-либо события, поэтому после этого мои функции не будут работать.
$('#btnLink').bind("click", function() {
$.mobile.changePage('mypage', 'slide'); // won't fire any more because of the delegate before
});
Я знаю, что делегат будет применяться ко всем элементам сейчас и в будущем, но я думаю, что приближаюсь к ответу, но пока не готов.
Заранее спасибо