2016-03-30 57 views
0

我无法在我的Cordova应用程序上正常使用点按/点击功能。我试图解决一个问题,快速双击一个按钮将挂起应用程序。当我使用“点击”它修复了这个问题,但我遇到了从页面重新创建页面的第二个问题,创建一直到页面显示事件。当我使用“点击”时,页面不会像点击一样从头开始重新创建,但如果我快速双击按钮,它会锁定页面。我使用的是Cordova 6.1.0,Jquery 2.1.4和JQueryMobile 1.4.5。我还使用fastclick插件来消除300毫秒的点击延迟。希望有人能帮助我。Cordova JQuery点击/点击问题

$(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 
    }); 
}); 

回答

1

我试着用下面的代码修复了上述所有问题。我在“ondeviceready”中添加了一个debounce函数,并在button click事件中添加了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 
    }); 
});