Webkitブラウザがタッチイベントを処理することによる300msの遅延を取り除くために、いくつかの異なる方法を試しました。ライブラリ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>
以下のコードで試してください。
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
別の解決策も考えられます。注:私は個人的にこれを試したことがありません。
$(document).on('pageinit', '.ui-page', function (event, data)
{
FastClick.attach(activePage);
});
JQuery Mobileの組み込み vclick
event -FastClickと同じアイデアを使用する必要があります。
$(document).on('vclick', '#someButton', function(){
});