0

Wordpressのシングルページポートフォリオでajax読み込み機能に取り組んでいます。

原則として、ギャラリーでサムネイルをクリックすると、コンテナー(#DrawerContainer)が開き、この記事のajaxコンテンツがそこにフェッチされます。たくさんの助けを借りて、サムネイルをクリックすると、引き出しを開いて投稿コンテンツを読み込むことができます。

これが機能することを確認したい場合のフィドルです(ajaxはロードされませんが、ローカルで機能します)。http://jsfiddle.net/RF6df/24/

私が現在取り組んでいる部分:サイトをクロール可能にし、URLを共有可能にする必要があります。誰かに渡す場合http://mywebsite.com/#!project5、彼がページをロードするときにproject5コンテンツを開く必要があります。
ハッシュバン(#!)URLがこれを機能させる方法だと思いました。以下のコード(jsfiddleにコメント)を使用して、URLを更新し、クリックしたサムネイルのハッシュを追加できます。

var pathname = $(this).find('a')[0].href.split('/'),
            l = pathname.length;
        pathname = pathname[l-1] || pathname[l-2];
        window.location.hash = "#!" + pathname;

しかし、ページをロードすると、ajaxの状態が記憶されません。これは、ajaxコンテナがクリックイベントでのみ読み込まれたためだと思いましたが、phpに永続コンテナを追加しても変更はありません。

投稿コンテンツがすでに表示されているページをロードする方法、またはページがハッシュバンURLをロードしているときに#DrawerContainerを開く方法はありますか?

私はjqueryとajaxを学んでいるだけだということを覚えておいてください。ですから、あなたがしていることを少し説明したりコメントしたりしていただければ幸いです。同時に学ぶことは間違いありません... :)

4

2 に答える 2

3

オンロード時に、window.location.hashを確認し、特定のリンク/divのクリックをトリガーする必要があります。

$(document).ready(function() {
    var hash = window.location.hash;
    if ( hash.length > 0 ) {
        hash = hash.replace('#' , '' , hash );
        $('a[rel="'+hash+'"]').trigger('click');
    }
}); 
于 2012-11-08T15:48:27.387 に答える
0

ハッシュ変更を介してトリガーしたいサイトで以下を使用しました。

まず、ハッシュ変更イベントをバインドしてハッシュ値を取得します

 $(window).bind('hashchange', function(o){

            url = window.location.hash.substring(1);

            o.preventDefault();



        if (!url) {
            return;
        }

 }

次に、必要なときにハッシュ変更をトリガーします。あなたの場合、ページが読み込まれたとき、つまりドキュメントの準備ができたときです。

jQuery(document).ready(function($) {
   $(window).trigger('hashchange');
});

次に、正しいコンテンツをロードする関数でハッシュ値を使用できます

于 2012-11-08T15:59:37.810 に答える