1

私は現在、jQueryenhashChangedに基づいて動的なWebサイトを構築しています。現在、document.readyでこのコードを使用しています。

$(window).hashchange( function(){
    switch(location.hash)
    {
    case "#/calendar":
        content.load("calendar.php");
        break;
    case "#/media":
        content.load("media.php");
        break;
    case "#/social":
        content.load("social.php");
        break;
    case "#/settings":
        content.load("settings.php");
        break;
    default:
        content.load("home.php");
        title.text("Debafla");
    }
});

今、私はビデオギャラリーを構築しているので、次のようなURLを使用したいと思いました。

example.com/#/video/12485

したがって、video.phpをコンテンツ部門にロードする必要があります。DBからID12485のビデオを取得する必要があります。しかし、JavaScriptでこれらのハッシュページをカバーするにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

2

次のパターンを使用して、if-else条件を追加します。

$(window).hashchange( function(){
    if (/^#\/video\/\d+$/.test(location.hash)) { //hash equals #/video/numbers ?
        var num = location.hash.match(/\d+/)[0]; //12485, for example
         //do something, for example:
        content.load("video.php?video_id=" + num);

    } else {//Else switch:
        switch(location.hash)
       {
     ...
于 2011-11-01T20:56:58.660 に答える
2

私は分割方法を使用します:

$(window).hashchange( function(){
    switch(location.hash.split("/")[1])
    {
    case "calendar":
        content.load("calendar.php");
        break;
    case "media":
        content.load("media.php");
        break;
    case "social":
        content.load("social.php");
        break;
    case "settings":
        content.load("settings.php");
        break;
    case "video":
        content.load("video.php?v=" + location.hash.split("/")[2]);
        break;
    default:
        content.load("home.php");
        title.text("Debafla");
    }
});
于 2011-11-01T21:00:44.397 に答える