1

我正在使用phonegap,需要使用'touchstart'来加速点击响应,只是意识到'touchstart','touchmove','touchend'都没有触发,而是'click'。

我什至在内置浏览器(7" android 4.0.3 平板电脑)中测试了一个简单的页面,发现它失败了。

我在两块平板电脑上测试过还是一样的。在以下页面中,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') 处。所以我被称为的函数看起来像一个字符串。这个错误来了。所以请检查函数调用的地方

onclick = 'createCustomAlert('wpt')'

onclick = 'createCustomAlert(3)'

于 2013-12-24T10:54:29.317 回答
-1

我也遇到了同样的问题,几乎三天就搞砸了。我将点击事件放在我的 html 输入标签上,(EditText)并尝试过,但它也没有用。最后,为了我的奇迹,我只是放了一个简单alert("Hello")的用ontouchstart. 令我惊讶的是,我成功地获得了警报和软键盘,为此我尝试了将近一周。你也试试这个.. 祝你好运

于 2012-09-17T05:23:57.520 回答