0

私はajax呼び出しを連鎖させようとしています:すべての要素にhtmlコンテンツをロードするとき、他の要素にロードしたいです。ローカルのajaxイベントにクロージャーを付加して、各要素の呼び出しをハードコードせずに実行したいと思います。私は次のようなグローバルなajaxイベントを試してみました:

$("#elem2").ajaxSuccess(function(e,x,opts) {
  var myUrl="server/elem2"
  if(conditionToAvoidRecursiveCalls)
    $(this).load(myUrl)
})

しかし、conditionToAvoidRecursiveCallsを定義する方法がわかりません。e.target!=これは機能せず、opts.url!==urlは相互再帰的な呼び出しを避けません。

別の賢い方法はありますか?

4

2 に答える 2

1

解決策は私よりも単純でした。ajax呼び出しには、私が望むことをすでに実行しているオプションがあります(global:false):

var html=$.ajax({url: url,global:false}).responseText
$(this).html(html)

グローバルブールデフォルト:true

このリクエストに対してグローバルAjaxイベントハンドラーをトリガーするかどうか。デフォルトはtrueです。falseに設定すると、ajaxStartやajaxStopなどのグローバルハンドラーがトリガーされなくなります。これは、さまざまなAjaxイベントを制御するために使用できます。

于 2011-01-21T11:36:33.867 に答える
0

AjaxQueueプラグインを使用します。ジョン・レシグ自身が書いたものです。

于 2011-01-21T10:22:59.383 に答える