У меня есть приложение jquery / phonegap, и все хорошо, быстро и работает, за исключением одного небольшого элемента.первый начальный клик, коснитесь того, что выбрано дважды.после того, как вы сделали первый, все в порядке.Я пробовал все виды, как e.preventDefault ();во многих местах и пробовал pr-загрузку страниц, но все равно, что бы я ни получал, этот первый двойной щелчок.
вот пример ecmascript
$('nav[id="homeList"] div[data-cust="homelink"]').live("vclick",function(e){
e.preventDefault();
var over = $(this).attr('data-over');
if(over !== undefined){ $(this).addClass(over); }
var pageTo = $(this).attr('data-pagename');
Log( 'Page to: ' + pageTo );
if(pageTo !== undefined){
$.mobile.changePage("#" + pageTo);
if(over !== undefined){ $(this).removeClass(over); }
}
//e.preventDefault();
});
вот пример HTML:
<div class="ui-listitem">
<div class="block sprite2 binbox relat" data-pagename="inbox" data-over="binboxover" data-cust="homelink"></div>
</div>
навигация с идентификатором homeList - это просто мой html5-тег, внутри которого все элементы пользовательского интерфейса действительно озадачены, но я уверен, что кто-то знает, как, возможно, отменить это странное поведение.
спасибо
ps Я смотрел на другое событие двойного щелчка / двойного события, которое здесь происходит, но они имеют отношение к чему-то, что происходит снова и снова, я должен подчеркнуть, что это только в первый раз
Я нашел некоторыеисправление, но если вы щелкаете в том же месте, это отменяет ваш щелчок, я пытался установить какую-то глобальную переменную, но это означало бы, что каждое нажатие должно было быть зарегистрировано в глобальном, так что глобальное содержит последнее местоположение щелчка и для его отменымое начальное расположение кнопок нажатия.Я также думал, что если есть глобальное местоположение щелчка, тогда нет необходимости проверять, но что не отменяет первое, это просто предотвращает остальное, в любом случае вот код, который отменяет, но предотвращает:
var lastClick = $( this ).attr( 'data-lastclick' ),
curClickPoint = e.clientX+'x'+e.clientY
if( lastClick === curClickPoint) return false;
$( this ).attr( 'data-lastclick', curClickPoint );
Ладно, пришло окончательное решение:
установить глобальный
var hasDoneFirstClick = false;
в той же функции, что и выше, я использовал этот код:
if ( !hasDoneFirstClick ) {
hasDoneFirstClick = true;
return false;
}
этотолько первоначальный клик, который удваивается, поэтому я просто игнорирую первый в истории клик / тап!