2011-10-18 98 views
2

如果我有一個頁面結構,其中有三個或更多頁面,其中p1鏈接到鏈接到p3的p2,並且我雙擊p3上的後退按鈕。這將導致頁面返回到p2,然後立即返回到p1。雙擊後退按鈕會導致網站返回兩頁

有什麼辦法可以防止這種行爲嗎?

JSFiddle example code

+1

這是一個有趣的問題?你有沒有嘗試*單*在第3頁點擊後退按鈕? –

+0

哈哈:)問題是,如果有人在慢速手機上運行應用程序,他們可能會認爲他們錯過了按鈕並再次單擊它。那會導致它回到兩頁。 – Naning

回答

2

創建一個自定義的數據屬性點擊並保持點擊次數在。當您導航回頁面時,請重置計數器。

活生生的例子:

JS

$('#p3').live('pageshow', function(event, ui) { 
    $('#goBackOne').click(function() { 
     // if 0 (zero) clicks go back 1 
     if($('#goBackOne').attr('data-clicks') == 0) { 
      $('#goBackOne').attr('data-clicks', 1); 
      history.back(-1); 
     } 
    }); 
}); 

$('#p2').live('pageshow', function(event, ui) { 
    // reset to 0 (zero) 
    $('#goBackOne').attr('data-clicks', 0); 
}); 

HTML

<div data-role="page" id="p1"> 
    <a href="#p2" type="button">Go to page 2</a> 
</div> 
<div data-role="page" id="p2"> 
    <a href="#p3" type="button">Go to page 3</a> 
</div> 
<div data-role="page" id="p3"> 
    <a href="#" type="button" id="goBackOne" data-clicks="0">Back</a> 
</div>