2011-06-21 3 views
-1

私はAJAXの新機能で、現在デモサイトでjQueryアドレスを実装する方法を学習していますので、私が作業している個人プロジェクトに移植することができます。jQueryアドレス - ディープリンクと状態

URLハッシュを変更するだけでなく、ハイパーリンクを使用して目的のコンテンツを読み込むことができますが、ブラウザバーに直接URLハッシュを入力すると特定の状態にナビゲートできません。

現在のコードは次のようなものだ:

$("h2.entry-title a").live('click', function(event) { 
    event.preventDefault(); 
    $("#content").fadeOut("slow").load($(this).attr("href")+" #content > *", function() { 
     $.address.value("?page=entry"); 
    }).fadeIn("slow"); 
}); 

私はディープリンクを実装するjQueryのアドレスを使用する方法についてのチュートリアルやデモを探してみましたが、今のところそれが実り、何も得られませんでした。すべてのあなたの助けを

感謝:)

P/S:いくつかの点でより多くのエントリーのタイトルが動的に挿入されますので、私は.live()代わりの.bind()を使用する理由です。

答えて

0

最初にページを読み込んだときにURLを読み取るものはありません。アドレスバーに「http://test.com/test.html?page=entry」と入力すると、ページの読み込み時、ハッシュを手動で変更したとき、クリックイベント時にコンテンツを読み込む必要があります。

http://abishaigray.com/jquery.address.php

$(function() { 
    var content = $("#content"); 
    var loadUrl = function(url) { 
     content.fadeOut("slow", function() { 
      content.load(url + " #content > *", function() { 
        content.fadeIn("slow"); 
       }); 
     }); 
    }; 
    $("a.loadUrl").live('click', function(event) { 
     event.preventDefault(); 
     $.address.parameter("page", $(this).attr("href")); 
    }); 
    $.address.change(function(vars) { 
     var page = $.address.parameter("page"); 
     if (page) { loadUrl(page); } 
    }); 
}); 

私は$.address.changeイベントを利用しました。このようにして、いつでもあなたがURLを更新したり、ユーザーが最初に到着したときにコンテンツが再読み込みされます。

+0

私は、ある時点で$ .address.changeを使用する必要がありますが、実装方法はわかりません。それを説明する簡単な例がありますか?ありがとう、束: – Terry

+0

確かに、以下を参照してください。 '$ .address.change(function(vars){alert( 'url changed!');});' また、[jQuery Adress Docs](http://www.asual.com)/jquery/address/docs /) –

+0

ありがとうございます。私は数日前にドキュメントとサンプルを読みましたが、それがどのように機能するかを理解するためにはまだ苦労しています。 '$ .address.change()'がどのように動作するかを示す例があります。http://jsfiddle.net/5L6Ur/9/ しかし、私が気になるのは、ユーザーを正しい状態にナビゲートする方法です。州固有のURLを入力しますか?私はいくつかの正規表現を期待したいと思いますが、これまでの例では何も見つかりませんでした。 – Terry