Как использовать FastClick.js с помощью Phonegap и JQM?
Я пробовал несколько разных способов удалить задержку в 300 мс из-за того, что браузеры webkit обрабатывают события касания. Библиотека, FastClick.js, кажется, является предпочтительным методом, но у меня есть небольшая проблема с ее реализацией. Я включил его, а также добавил прослушиватель событий, но я не знаю, правильно ли я добавил слушателя. Должно ли это работать, или я не могу что-то сделать?
Спасибо!
Рассмотрим приведенный ниже код, где
<!DOCTYPE html>
<html>
<head>
<title>
Calculator
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum- scale=1.0, user-scalable=no;">
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8" src="phonegap.js">
</script>
<<script type='application/javascript' src='js/fastclick.js'></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
$(function() {
FastClick.attach(document.body);
});
}
function onDeviceReady()
{
}
</script>
<script>
window.addEventListener('load', function() {
new FastClick(document.body);
}, false);
</script>
<link rel="stylesheet" href="./css/jquerymobile.css" type="text/css">
<link rel="stylesheet" href="./css/jquerymobile.nativedroid.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body onload="onBodyLoad()">
<!--START OF PAGE 1-->
<div data-role="page" data-theme='b' id="one">
<div data-role="content">
<a href="#one" data-transition="none" data-
</div>
</div>
</body>
Ответы
Ответ 1
Попробуйте использовать приведенный ниже код.
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
alert('test');
FastClick.attach(document.body);
}
Если все в порядке, вы должны увидеть окно предупреждения.
Посмотрите http://phonegap-tips.com/articles/fast-touch-event-handling-eliminate-click-delay.html
Ответ 2
Я также могу думать о другом решении. Примечание: я лично не пробовал это.
$(document).on('pageinit', '.ui-page', function (event, data)
{
FastClick.attach(activePage);
});
Ответ 3
Вы должны использовать встроенное vclick
событие в jQuery Mobile - ту же идею, что и FastClick.
$(document).on('vclick', '#someButton', function(){
});
Источник: Как правильно использовать FastClick с jQuery Mobile?