0

つまり、これは実際には2つの部分からなる質問です。なぜそれが機能しないのでしょうか。

多くのjqueryの.load()と.get()を使用するajaxアプリケーションがあります。私のグローバルjsファイルに、jQueryのグローバルajaxComlete関数をテストするために次の行を追加しました。

$('body').ajaxComplete(function(e){
    alert();
});

ajaxがアプリケーション全体で実行されても、アラートは表示されません。誰かが理由を知っていますか?

これが必要な理由は、クラス名を介して適用されるスタイルがたくさんあり、すべてのajaxロードが基本的に古いクラスをクリアして新しいクラスを取り込むためです。これにより、私のスタイリングが削除されます。そのため、すべてのスタイルを再適用するstyleForm()というグローバル関数があります。私はこの関数をすべての個々のajaxコールバックで呼び出します。すなわち:

$.get('source.cfm',funcion(){
    styleForm();
});

このグローバルなajax関数を使用すると、おそらく「クリアナー」コードと見なされるものが生成されることを私は知っています。しかし、それはパフォーマンスに大きな影響を与えるでしょうか?もしそうなら、私はそれをしたくありません。そうでない場合は、これを機能させたいと思います。

4

1 に答える 1

0

ajaxCompleteをにバインドしようとしました$(document)か?

私たちのコードでは、、、を使用$.ajaxSetup({})$(document).ajaxStart(function(){})$(document).ajaxStop(function(){})います。

使用する必要がある理由$(document)

$.get基本的には、ドキュメントで$.ajaxajaxイベント(、、など)をトリガーする.ajaxComplete省略形です。.ajaxError

$('body').ajaxCompleteajaxイベントまたは下位のdom要素をバインドした場合にのみトリガーされます。通常、これは次のような意味です$('<header>').load('http://www.example.com');

于 2012-08-24T15:30:24.407 に答える