【问题标题】:Cordova JQuery Tap / Click IssuesCordova JQuery 点击/点击问题
【发布时间】:2016-07-18 12:58:39
【问题描述】:

我无法让点击/单击功能在我的 Cordova 应用程序上正常工作。我正在尝试解决快速双击按钮会挂断应用程序的问题。当我使用“单击”时,它解决了这个问题,但我遇到了从 pagecreate 一直到 pageshow 事件重新创建页面的次要问题。当我使用“点击”时,页面不会像点击一样从头开始重新创建,但如果我快速双击按钮,它会锁定页面。我正在使用 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
    });
});

【问题讨论】:

    标签: jquery cordova click double tap


    【解决方案1】:

    我设法使用以下代码解决了上述所有问题。我在“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
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多