3

検索ボックスと「タブ」を含む ajax 検索ページを作成しています。アイデアは、ユーザーがクエリを入力し、タブを変更し、クエリが新しいオプションとともに送信され、結果が下に読み込まれるというものです。

返されたデータ (「コンテンツ」) の長さ (?) が余分な JS の実行を停止しているように見えるという奇妙な問題が発生しています。

以下を参照してください。 #resultsArea は、ユーザーがタブ間をフリックすると複数の結果セットが含まれるように設計されているため、別の不要なデータベース クエリを送信するのではなく、クエリが同じ場合はキャッシュされた結果が表示されます。

「コンテンツ」は返されるデータです-これを使用するとすぐに(アラートにあるか、ページに印刷されているかに関係なく)、JavaScriptを実行できなくなります。.append 関数から +content+ を削除すると、その行に続くアラートが発生します。これは設計によるものですか?

「コンテンツ」にはかなりの量のデータが含まれています-大量の s と書式設定なので、これが問題なのだろうか. しかし、これはすべて機能し、そのまま表示されます。レンダリングされた結果に広告をロードできるように、追加の JS を追加したいだけですが、これは私を困惑させています。

$.ajax({
type: 'POST',
url: formUrl,
data: formData,
dataType: 'html',
success: function(content) {
    $('#resultsBit').slideUp(200);

    if (query!=prevQuery)
        {   
            $('#results_'+flavour).remove();
        }

    alert('I will fire');

    $('#resultsArea').append('<div id="results_'+flavour+'" style="display:true;">'+content+'</div>');

    alert('I will not fire');

    }
});

ご指摘ありがとうございます。

4

1 に答える 1

0

+content+関数から削除する.append()と、その行に続くアラートが発生します。これは設計によるものですか?

これにより、何が起こっているかについてかなり大きな手がかりが得られます。これは、内部の何かcontentがエラーを引き起こしていることを意味し (実際には例外がスローされます)、このエラーはコンソールから確認できます。

コンソールがなければ、次のtry { } catchようにコードをブロック内にラップできます。

try {
    $('#resultsArea').append('<div id="results_'+flavour+'" style="display:true;">'+content+'</div>');
} catch (e) {
    alert('Oh no, error: ' + e);
}

それは何が問題なのかについての手がかりを与えるはずですcontent.

于 2012-12-23T16:07:04.343 に答える