Задержка клика на iPhone - это функция, используемая для различения кликов и прокрутки.Когда вы привязываетесь к событию click
, iOS ждет около 300 мс, чтобы решить, нажали ли вы на объект или пытаетесь прокрутить страницу.
Вы можете использовать событие vclick
jQuery Mobile, которое срабатывает намного быстрее, однако выВероятно, возникают ситуации, когда событие vclick
запускается дважды подряд, что может привести к щелчку нескольких элементов.Вот пример кода того, как использовать vclick
события и захватывать только событие, инициированное первым:
$(function () {
//setup a function to check if a vclick event has fired within the last 500ms
function check_vclick () {
//if a vclick event has fired in the last 500ms then return false
if (do_vclick == false) return false;
//otherwise set a flag to disallow vclicks for 500ms
do_vclick = false;
//setup a timeout to allow vclicks in 500ms
setTimeout(function () {
do_vclick = true;
}, 500);
//return true so the event handler knows it's ok to run its code
return true;
}
//setup a flag to allow/disallow vclick events from firing
var do_vclick = true;
//bind an event handler to the vclick event for an element
$('#link_id').bind('vclick', function () {
if (check_vclick()) {
//run the code associated with the element, if it's a link referencing a pseudo-page on the same HTML document, you can do something like this
$.mobile.changePage($(this.href));
}
});
});
Вот ссылка на документацию для $.mobile.changePage()
: http://jquerymobile.com/demos/1.0rc2/docs/api/methods.html
Вот ссылка на документацию для vclick
(обратите внимание на примечания в разделе событий виртуальной мыши): http://jquerymobile.com/demos/1.0rc2/docs/api/events.html