2011-08-08 56 views
1

我試圖做兩件事情:HTML5應用的路由,pushState的

使用pushState的到URL

//Video 
$("a").click(function(){ 
history.pushState(null, "Video", "/video/"); 
return false; 
}); 

,然後可以更改路由鏈接顯示一個div,如果有人類型的IT在其瀏覽器:

www.mysite.com/video/ ---> show div 

我一直在看幾個劇本:davis.js,sammy.js,history.js

我需要這些腳本嗎?有沒有在jQuery的方式來做到這一點?

回答

5

我有些偏見,因爲我是Davis.js的作者,但我認爲使用像Davis.js或Sammy.js這樣的路由庫是最簡單的方法。兩個庫都有代碼來管理單擊鏈接時發生的情況,或者使用後退和前進按鈕在狀態和歷史API的所有其他特性之間導航。

如果你想要一些非常簡單的東西,那麼你可以自己編寫一些東西,雖然這可能需要比使用lib更長的時間。

這裏是你可以做一個粗略的想法:

$("a").click(function (e) { 
    e.preventDefault() 
    var link = $(this) 
    history.pushState({pushedByMe: true}, link.attr('title'), link.attr('href')) 
    yourCodeHere() 
}) 

history.onpopstate = function (event) { 
if (!event.state.pushedByMe) return 
yourCodeHere() 
}