0

このスクリプトに AJAX コールバック関数を追加するにはどうすればよいですか?

このスクリプトは、ページを更新せずに AJAX でコンテンツをロードしていますが、スクリプトをロードしていません。コールバック関数を追加すると、スクリプトが読み込まれると思います。

$(document).ready(function () {

    var hash = window.location.hash.substr(1);
    var href = $('#nav li a').each(function () {
        var href = $(this).attr('href');
        if (hash == href.substr(0, href.length - 5)) {
            var toLoad = hash + '.php #conten';
            $('#conten').load(toLoad)
        }
    });

    $('#nav li a').click(function () {

        var toLoad = $(this).attr('href') + ' #conten';
        $('#conten').hide('fast', loadContent);
        $('#load').remove();
        $('#conten').append('<span id="load"></span>');
        $('#load').fadeIn('normal');
        window.location.hash = $(this).attr('href').substr(0, $(this).attr('href').length - 5);

        function loadContent() {
            $('#conten').load(toLoad, '', showNewContent)
        }

        function showNewContent() {
            $('#conten').show('normal', hideLoader());
        }

        function hideLoader() {
            $('#load').fadeOut('normal');
        }

        return false;
    });
});
4

2 に答える 2

0

私の理解が正しければ、中心的な問題は load() が機能しないことです。これは、URL の先頭にスペースが追加されたハッシュ タグ「url #conten」が含まれていることが原因である可能性があります。

まず、ハッシュを「url#conten」という URL に連結する必要があります。次に、URL のハッシュはサーバーによって無視されます。クライアント (ブラウザ) によってのみ解釈されます。

これで問題が解決しない場合は、ブラウザでデバッグ ツールを使用して、サーバーからの応答を確認することをお勧めします。

于 2012-08-22T18:23:08.903 に答える
0

http://api.jquery.com/load/

ロードする 2 番目のパラメーターはコールバックにするか、サーバーにデータを渡す場合は 3 番目のパラメーターにすることができます。

$('#element').load(url, function() { console.log('content loaded'); });
$('#element').load(url, {some: 'parameters'}, function() { console.log('content loaded'); });

ページのレイアウトとリクエストしているページの一般的な例さえ知らずに、何が起こっているのかを推測するのは困難ですが、次のようになります。

  1. 「#conten」のコンテンツを要求されたページから取得し、現在のページの「#conten」に配置するように指定しています。「#conten」は両方のページで定義されていますか?

  2. ロードが呼び出されていることを確認するためにブレークポイントを設定しようとしましたか/リクエストが送信されたことを確認し、その内容を確認しましたか?

  3. 親スコープと子スコープの両方で href を定義しました。混同しているようには見えませんが、一意の変数名を使用すると、混同される可能性が減り、コードが読みやすくなります。

それが役に立たない場合、提供できる問題を示す HTML の例はありますか?

于 2012-08-22T18:40:03.780 に答える