Cordova JQuery 点击/点击问题

Cordova JQuery Tap / Click Issues

我无法让 tap/click 功能在我的 Cordova 应用程序上正常工作。我正在尝试解决快速双击按钮会挂断应用程序的问题。当我使用 "click" 它解决了这个问题,但我 运行 变成了一个次要问题,即从 pagecreate 一直到 pageshow 事件重新创建页面。当我使用 "tap" 时,页面不会像单击那样从头开始重新创建,但如果我快速双击按钮,它会锁定页面。我正在使用 Cordova 6.1.0、Jquery 2.1.4 和 JQueryMobile 1.4.5。我还使用 fastclick 插件来消除 300 毫秒的点击延迟。希望有人能帮助我。

$(document).on("pagebeforeshow", "#index", function() {
    $page = $("#index");
    $button = $("#buttonId", $page);

    // Tap method
    $button.off("tap").on("tap", function() {
        // do something
    });

    // Click method
    $button.off("click").on("click", function() {
        // do something
    });
});

我设法用以下代码解决了上述所有问题。我在 "ondeviceready" 中添加了一个去抖功能,并在按钮点击事件中添加了 preventDefault 代码。

function onDeviceReady() {
// Debounce double clicks
var last_click_time = new Date().getTime();
document.addEventListener('click', function (e) {
    var click_time = e['timeStamp'];
    if (click_time && (click_time - last_click_time) < 1000) {
        e.stopImmediatePropagation();
        e.preventDefault();
        return false;
    }
    last_click_time = click_time;
}, true);
}

$(document).on("pagebeforeshow", "#index", function() {
    $page = $("#index");
    $button = $("#buttonId", $page);

    $button.off("click").on("click", function(e) {
        e.preventDefault();
        // do something
    });
});