2012-04-04 10 views
11

、これは私がそれを使用していますコードです:PJAXの使い方は?私はPJAXは私のPHPのサイトで作業を取得しようとしていた(?PHPでPJAX)

<script src="js/jquery.js"></script> 
<script src="js/jquery.pjax.js"></script> 
    <script type="text/javascript"> 
     $(function(){ 
      // pjax 
      $('ul a').pjax('section') 
     }) 
    </script> 

私はちょうど彼らがPJAXのデモページで使用されるコードを使用しています使用したコンテナ(#main)をセクションタグである自分のサイトのものに置き換えます。コンソールやページにエラーはありませんが、どちらも動作しません!私はそれらのいずれかを使用すると、たったの$(「ULのA」)を使用していないとき、私は

$(function() { $('ul a').pjax('section') });

$('document').ready(function(){ 
    $('ul a').pjax('section') 
}); 

を使用していたが。pjax(「セクション」)の前に、私はこのエラーを参照してくださいコンソール:jquery.pjax.jsでのセクションの

キャッチされない無pjaxコンテナ(ライン:353)

が、私はこれでいくつかの助けを得ることができますか? ありがとう

+0

あなたのページには「

」タグがありますか? 'X-PJAX'ヘッダーまたは' _pjax'検索パラメータを送信すると、サーバーはクロムレスコンテンツを返しますか?あなたはデモURLにリンクできますか? –

+0

実際に私はPHPのものをアップロードすることができませんでしたが、私はちょうど単純なプレーンhtmlファイルで全く同じことを試みましたが、それと同じことです。 http://sbtest.comoj.com – user1302430

+0

このテストサイトでは、pjax呼び出しを '$(function(){$( 'ul a').Pjax("#main "、{fragment : "#main"});}); '。または、ページの下部に電話をかけます。 –

答えて

10

デフォルトでは、pjaxはクロムなしで新しいページが配信されることを期待しています.HTMLスニペットはコンテナのinnerHTMLとして使用されます。

あなたの例では、コンテナは最初の<section>タグになります。 pjaxがセレクタに一致する最初の要素を使用することを保証するかどうかはわかりません。 おそらく#mainのようなIDセレクタを使用するほうがよいでしょう。

とにかく、HTMLスニペットを配信していなかったようですが、ページ全体が表示されます。これはpjaxの目的をほとんど破りますが、ダウンロードされたコンテンツにフラグメントを指定することでサポートできます。ほとんどの場合、これは置換されるコンテナに一致するセレクタになります。

だから、あなたはそれ以外の場合は、コンテナの検索が失敗し、pjaxは、文書のロード後に呼び出されていることを確認します

$(function() { $("ul a").pjax("#main", { fragment: "#main" }); }); 

でpjaxを呼び出すことができ@id=mainを持つコンテナを使用と仮定。

ところで、私のHTMLDecorプロジェクトでは、pushState支援ナビゲーションに簡単に切り替えることができます。 HTMLページの生成についての視点を変更する必要がありますが、これを済ませたらHTMLDecor.jsスクリプトをページに追加するだけで、必要なときには自動的にpushStateが使用されます。

関連する問題