4

私は現在、1 つの CSS ファイルと JS ファイルを除いて、マークアップやスクリプトにアクセスできないアプリケーションをスキニングしているので、独自のスタイルと機能を追加できます。私が知っている理想的なセットアップではありませんが、それは私の選択ではないと信じています. ああ、このサイトのすべてのコンテンツは AJAX リクエストを介して生成されています。

とにかく、問題は、実行する必要がある Javascript がたくさんあることですが、$(document).ready();(AJAX のために) ページが実際にリロードされないため、どのコードも実行されません。

$(document).ready();AJAX 呼び出しが完了するたびにすべての関数を実行するように設定する方法はありますか?

組み込みの AJAX 呼び出し (編集できません) を以下に含めました。

$.ajax({
  type: "POST",
  dataType: "html",
  url: url1,
  data: pars,
  success: function(data)
  {
    $('#thisContent').html(data);
    loadMenu(urlToLoad);
  } 
});
4

3 に答える 3

4

はい、のハンドラを追加できます.ajaxComplete()。すべての ajax 呼び出しが終了した後に呼び出されます (成功またはエラーあり)。

さらに読む: Ajax イベント

于 2012-10-11T11:05:27.630 に答える
2

イベントのハンドラーを$(document).ready([handler])再度呼び出すことが必要な場合は、名前付き関数をハンドラーとして使用し、それを参照することができます。

$(document).ready(function readyHandler()
{
});
//and:
$.ajax({....,success:readyHandler});

しかし、個人的には、これについて考えることをお勧めします。たとえば、$.ajax呼び出しがreadyHandler関数内で行われると、デッドロックが発生します。また、同じバインドを何度も行う可能性が非常に高くなります。あなたが何を達成しようとしているのかはわかりませんが、それを行うためのより良い方法があると確信しています。(本当にあなたの質問を正しく理解していれば)

于 2012-10-11T11:14:58.657 に答える
1

これはあなたに役立つと思います。

于 2012-10-11T11:07:01.467 に答える