2016-03-30 58 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 
    }); 
});