2016-01-05 25 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); 
});