Jquery Mobile,添加点击延迟

时间:2016-01-05 12:36:14

标签: jquery cordova jquery-mobile phonegap-build

我最近移动到Jquery mobile for Phonegap应用程序,因为300ms webkit点击延迟太迟了,我现在却有相反的问题,

我正在研究一个基本上是10位数字的针垫,如果用户快速连续点击它们,它偶尔会触发pin事件两次。我的每个pin按钮都是div e.g。

<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 个答案:

答案 0 :(得分:1)

以这种方式尝试:

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