1

私は2つのことをしようとしています:

pushState を使用して URL を変更する

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

次に、そのリンクをルーティングして、誰かがブラウザーに入力した場合に div を表示できるようにします。

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

私はいくつかのスクリプトを見てきました:davis.js、sammy.js、history.js

これらのスクリプトは必要ですか? jQueryでこれを行う方法はありますか?

4

1 に答える 1

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()
}
于 2011-08-18T12:11:10.860 に答える