2011-07-15 79 views
0

比方說,我有一個頁面左右滑動並使用ajax加載新內容。取決於幻燈片方向,變量被設置爲左側滑動或右側滑動。記住一個變量的歷史記錄

當您單擊瀏覽器中的後退按鈕時,html5 popstate事件啓用並使用ajax加載最後一頁。現在使用變量I可以確定當按下後退按鈕時滑動的方向if (var direction == 'leftslide'){ direction = 'rightslide'}(以獲得很好的「後退」效果)。

但是,如果您按兩次後退按鈕,幻燈片並不總是正確的正弦曲線,它只會反轉幻燈片,而不是查看該幻燈片的幻燈片。

那麼有什麼辦法可以保存變量的歷史記錄,並使用JavaScript獲取訂單?

感謝您的閱讀和思考這個:)

+0

我爲什麼得到-1? – cmplieger

+0

我沒有給-1,但我確實發現你的問題令人困惑;也許其他人發現它很混亂,他們downvoted。 – nnnnnn

+0

好吧:)。那麼我不知道如何asj這不同所以... – cmplieger

回答

2
var history = []; 
var position = 1; 

function onSlide() { 
    history.push(currentPage); 
}; 

function lastPage() { 
    return history.length && history[history.length - 2]; 
}; 

function currentPage() { 
    return history.length && history[history.length - 1]; 
}; 

function goBack() { 
    if (history.length) { 
     position += 1; 

     navigateTo(history[history.length - position]); 
    } 
} 

function goForward() { 
    if (history.length) { 
     position -= 1; 

     navigateTo(history[history.length - position]); 
    } 
} 

有此想法?

基本上,我們將每個頁面保存在一個數組中。當我們瀏覽歷史時,我們通過更新一個整數變量來記錄我們在歷史中的位置,該整數變量指示要檢查的歷史數組中的哪個插槽。

+0

我怎樣才能保存一個變量呢?是不是隻爲URL? – cmplieger

+0

你可以將任何你想要的東西放到歷史數組中 - 變量,函數,數字...... – Adam

+0

當我向後移動兩次時,函數怎麼知道它應該使用-3而不是-2?同時仍然能夠正常導航:s。對不起,提問234個問題:p – cmplieger

0

這聽起來對我來說更像是要將某些狀態保存在Cookie中,然後您可以隨時在頁面加載時讀取它。您可以將cookie作用於整個站點,站點的分支或僅路徑。