1

現時点では、リンクごとにページを更新する必要がないように、ページ コンテンツがメイン内に読み込まれる設定を作成しようとしています。

クリックされたすべてのリンクに対して次のようにjQueryロードを使用して、リンクが#main. (もちろん、完成した時点ですべてのリンクになるわけではありません。)

直接アクセスしたページは正常に動作しますが、この読み込みリンクを使用しようとすると、コンテンツは正しく読み込まれますが、読み込まれた html がビュー ソースにしか表示されません。ここで何か問題がありますか?

$("body").on("click", "a", function(){

    $("#footer, #main").fadeOut('fast');

    $("#main").load($(this).attr("href"), function(){

        $("#main, #footer").fadeIn('slow');

    });

    return false
});
4

2 に答える 2

2

この問題の原因は、含めるファイルにタグ.load()が含まれている場合です。<script></script>

これらは Javascript に干渉し、対処できず、ページにエラーが発生します。

問題を停止するには<script></script>、ロードされたファイル内からタグを削除する必要があります。

于 2012-04-03T22:06:40.240 に答える
1

メインをフェードアウトし、再びフェードインしませんでした...
これを使用してください:

$("body").on("click", "a", function(){    
    $("#footer, #main").fadeOut('fast');    
    $("#main").load($(this).attr("href"), function(){    
        $("#main").fadeIn('slow'); // <======================
        //$(this).fadeIn('slow'); this isn't the main object!
        $("#footer").fadeIn('slow');    
    });    

    return false
});

thisコールバック内は DOM 要素ではありません!!!

于 2012-04-03T21:53:52.833 に答える