1

私はphonegapを使用していて、クリック応答を高速化するために「touchstart」を使用する必要がありました.

組み込みブラウザ (7 インチの Android 4.0.3 タブレット) で単純なページをテストしたところ、失敗したことがわかりました。

私はまだ同じ2つのタブレットでテストしました。次のページでは、button2 には「html_click」のみが表示され、button3 には「click」のみが表示されます。

<!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf8">
    <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width">
    <title>Droid touch event test.</title>
    </head>
    <body>
    <button id="button">touch it</button>
    <button id="button2" ontouchstart="d_('html_touchstart')" onclick="d_('html_click')">html</button>
    <button id="button3">touch 3</button>
    <div id="db"></div>
    <script>
            function $(d){return document.getElementById(d)}
            function d_(m){dbo.innerHTML=dbo.innerHTML+' '+m}
            function ts1(e){d_('document touched')}
            function ts2(e){d_('button touched')}
            function eh(e){
                d_(e.type);
            }
            var ets='touchstart',dbo=$('db');
            document.addEventListener(ets,ts1,false);
            $('button').addEventListener(ets,ts2,false);
            $('button3').addEventListener(ets,eh,false);
            $('button3').addEventListener('touchend',eh,false);
            $('button3').addEventListener('click',eh,false);
    </script>
    </body>
    </html>

touchstart が起動しないのはなぜですか? タッチイベントを機能させるために何かする必要がありますか? または、クリック応答を速くする他の方法はありますか?

イベントを使用mousedownしましたが、機能しましたが、特に高速ではありませんでした。

(new Date()).getTime()との差 (一部のinnerHTML変更を含む)は 15 程度です。mousedownclick

4

3 に答える 3

0

コンセプトを示すために必要なものだけを残して、これを作成し、ICSデバイスでPhonegap Build(デフォルトはPhonegap 2.0ですが、重要ではありません)を使用してテストしました。あなたのために働くはずです:

<!DOCTYPE html>
<html>
    <body>
        <button id="button1">1</button>
        <button id="button2">2</button>

        <script>
            document.getElementById("button1").addEventListener('touchstart',button1Pressed);
            document.getElementById("button2").addEventListener('touchstart',button2Pressed);
            function button1Pressed ()
            {
                alert('Button 1 Pressed');
            }

            function button2Pressed ()
            {
                alert('Button 2 Pressed');
            }
        </script>
    </body>
</html>
于 2012-09-17T19:46:43.390 に答える
0

私も同じ問題に直面しました。次の最初の行で、「Android WebView and NO_FAST_DRAW = false」というエラーが発生しました。セカンドラインに変更後。出来た。エラーは createCustomAlert('wpt') にありました。SO 私が呼び出された関数は文字列のように見えます。このエラーが発生していました。そのため、関数呼び出しの場所で確認してください

onclick = 'createCustomAlert('wpt')'

onclick = 'createCustomAlert(3)'

于 2013-12-24T10:54:29.317 に答える
-1

私も同じ問題に直面し、ほぼ3日間台無しにしました. HTML入力タグにクリックイベントを入れて(EditText)みましたが、やはりうまくいきませんでした。最後に、奇跡的に、簡単alert("Hello")ontouchstart. 驚いたことに、ほぼ 1 週間試していたアラートとソフトキーボードを正常に取得できました。あなたもこれで試してみてください..幸運を祈ります

于 2012-09-17T05:23:57.520 に答える