2012-09-17 26 views
1

我正在使用phonegap,需要使用'touchstart'加快點擊響應,只有意識到沒有'touchstart','touchmove', 'touchend'正在射擊,但'點擊'。觸摸事件不工作在Android手機網絡視圖(甚至內置的瀏覽器)

我甚至在測試內置的瀏覽器(7" 的Android 4.0.3平板電腦)一個簡單的頁面,並發現它失敗了。

我兩片測試還是一樣。 在以下頁面, BUTTON2只顯示「html_click」,BUTTON3只顯示「點擊」:

<!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事件,工作但不是很快。 mousedownclick之間

(new Date()).getTime()差異(包括一些innerHTML變化)大約只有15

+0

朋友告訴你的概念顯然 –

+0

我要添加傾聽'touchstart',並且它不會被解僱。我應該怎麼做才能使它工作? –

+0

我覺得你需要在html文件本身創建那個觸摸監聽器更好 –

回答

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> 
+0

仍然一樣。在具有相同操作系統的其他設備上工作的相同代碼無法工作,所以我現在確定這是設備特定的問題,而不是代碼或ICS。 –

-1

我也面臨同樣的問題,幾乎3天搞砸。我將點擊事件放在我的html輸入標記(EditText)上並嘗試過,但它也不起作用。最後,爲了我的奇蹟,我只是把一個簡單的alert("Hello")ontouchstart看到。令我驚訝的是,我成功地獲得了警戒和軟鍵盤,爲此我嘗試了近一個星期。你也試試這個.. 運氣最好的

+0

''nothing。 ''only'點擊6' –

+0

刪除'addEventListeners'並重試.. – YuDroid

+0

註釋掉所有'addEventListeners',仍然只有'click'工作。 –

0

我也面臨同樣的問題。在bellow的第一行,我收到錯誤「Android WebView和NO_FAST_DRAW = false」。更改爲第二行後。有效。錯誤發生在createCustomAlert('wpt')。所以我所稱的功能看起來像一個字符串。這個錯誤即將到來。所以,請在地方的函數調用的地方檢查

的onclick = 'createCustomAlert(' WPT ')'

的onclick = 'createCustomAlert(3)'

相關問題