0

私のウェブサイトでは、以下に基づいてページ ナビゲーションを構築しますhashchange

var hashHome;
$(window).bind( 'hashchange', function(e) {
    var homeClass = "home";
    var url = $.param.fragment();
    if($('#page-content').hasClass(homeClass)){
        hashHome = $('#page-content').html();
    }

    if(url ==''){
        //homepage with nothing(no hash)
        if(!$('#page-content').hasClass(homeClass)){
            //alert("load frim cache ->#"+url);
            $('#page-content').addClass(homeClass);

            $('#page-content').html(hashHome);
        }
    }else{
        //go to some page 
        if($('#page-content').hasClass(homeClass))
            $('#page-content').removeClass(homeClass);
        initAction(url);
    }
})
$(window).trigger( 'hashchange' );

サイトがホームページをロードすると、ホームページは に保存されhashHomeます。ユーザーが別の場所に移動すると、のコンテンツinitAction(id)全体$('#page-content')が他のページのコンテンツに置き換えられます。ユーザーがホームに戻ると、保存されているホームを に復元し$('#page-content')ます。

私の問題は、すべての jQuery がホームページで機能しなくなったことです。

私はlive()すでに読んだことがありますが、それが機能するにはそのようなイベントが必要なようclick()です。これを修正するにはどうすればよいですか?

4

1 に答える 1

0

ページを囲むdivのコンテンツを変更する前に、ページ全体を保存する必要があることがわかりました

var content$('#page-content').html();

次に、コンテンツの変更を行います

そうすれば、すべての jQuery プラグインを再初期化すると、古い参照がすべて失われcontent、二重の初期化の代わりに新しい変数が使用されます。

そして最後に、スクリプトタグが次のように見えるため、元の質問のコードも機能しません<script type="text/javascript">...</script><script></script>

于 2012-07-20T13:19:13.303 に答える