2016-01-05 29 views
0

我最近搬了jQuery Mobile的我的PhoneGap應用程序爲300ms的WebKit的點擊延遲太多的延遲,我現在可是有相反的問題,jQuery Mobile的,加自來水延遲

我在本質上是一個有10位數的針墊的工作,如果用戶快速連續敲擊它們,偶爾會觸發針事件兩次。我的每個針按鈕都是div的

<div class='grid'> 
     <div class="flexone"><div class="pin-num">1</div></div> 
     <div class="flexone"><div class="pin-num">2</div></div> 
     <div class="flexone"><div class="pin-num">3</div></div> 
</div> 
在每個抽頭我然後運行下面的函數

$('.pin-num').on("tap", function(){ 
     var pin = $(this).text(); 
     updatePin(pin); 
}); 

這反過來又觸發以下功能

function updatePin(pin) { 

       var count = "0"; 
       if($('.psone').text() != "") { count++; } 
       if($('.pstwo').text() != "") { count++; } 
       if($('.psthree').text() != "") { count++; } 
       if($('.psfour').text() != "") { count++; } 

       if(count == "0") { hideStatus(); $('.ph').text(""); $('.psone').text(pin); $('.psone').attr("pin", pin); $('.pin-cancel').html('<img class="pin-back" src="img/back.png">'); } 
       if(count == "1") { $('.psone').text("•"); $('.pstwo').text(pin); $('.pstwo').attr("pin", pin);} 
       if(count == "2") { $('.pstwo').text("•"); $('.psthree').text(pin); $('.psthree').attr("pin", pin); } 
       if(count == "3") { $('.psthree').text("•"); $('.psfour').text("•"); $('.psfour').attr("pin", pin); checkPin(); } 
       if(count == "4") { $('.psone').text(pin); $('.pstwo').text(""); $('.psthree').text(""); $('.psfour').text(""); hideStatus(); $('.pin-cancel').html('<img class="pin-back" src="img/back.png">'); } 

      } 

我需要做的是要能夠不允許生兩點擊事件觸發在對方的x毫秒內,我猜一些在30ms左右應該停止意外觸發的地方。

我已經在網絡上搜索,並不能找到任何有關,只是消除延遲的問題。任何人都可以建議他們如何處理這個問題?

回答

1

試試這樣說:

$('.pin-num').on("tap", function(){ 
     event.stopPropagation(); 
     event.preventDefault(); 
     var pin = $(this).text(); 
     updatePin(pin); 
});