私はこれを投稿する前にトンを読み、それを動作させるために何ができるか試しました。だから、基本的に私はajaxStop()を他のjQueryのAjaxリクエストがロードされた後に処理するためのフックとして使用しようとしているので、それを操作して追加することができます。jQuery ajaxStop()は増分して複数回発生します
しかし、私は私の追加の要求に追加複数回実行すると思われる)ajaxStopを(使用しないときにはそう...
今試行錯誤の少し後。私はこれが私のajaxStop()関数の中で何かがクリックされた後、ポップアップにデータをつかむために別のAjaxポストを呼び出すからです。このクリックイベントハンドラは、他のすべてのajaxがロードされた後に登録される必要があります。なぜなら、ajaxStop()メソッドから取り除くと多重度エラーはなくなりますが、 tレジスタを削除します。私はこの間違いの可能性が最も高いですが、いくつかの助けを使うことができます。遅くなって脳が痛いので、明日それを見てみましょう。jQuery('.content').one('ajaxStop', function() {
setInterval(doPopUpOptionsMenu , 1000);
return false;
});
doPopUpOptionsMenuの中には、オプションのポップアップのコンテンツを取得する別のajax呼び出しがあります。
function doPopUpOptionsMenu() {
jQuery(".activity-popUpMenu").one('click',function(e) {
var activityId = jQuery(this).parent().attr('id').split('-');
//code to grab options and show the user the Options box.
jQuery("#optionsPopUpContainer").css({'display': 'block', 'position' :'absolute', 'top' : e.pageY , 'left' : e.pageX});
var myAjaxURL = "example.com";
var jqxhr = jQuery.post(myAjaxURL, { menuOptions : true, id : activityId[1] } , function($response) {
jQuery("#optionsPopUpContainer").html($response);
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
});
jQuery(".activity_update").hover(
function(){
jQuery(this).children('.activity-popUpMenu').addClass('activated');
} ,
function() {
jQuery(this).children('.activity-popUpMenu').removeClass('activated');
//jQuery(".activity-popUpMenu").unbind('click');
});
}
今、このための警告は、それが成功するために、一度完全に一度べきとして最初のクリックで二回ポップアップ表示されます。ポップアップオプションをもう一度クリックすると、4つのアラートが16よりも8つ表示され、ポップアップが倍増し続けます。私が言ったように、これはajaxStopコール内のajaxに起因すると考えられましたが、どうやってもっとうまくいくのでしょうか?
しかし、文書が変更されてもうまくいけば、ページを読み込んでコンテンツを変更した後、このポップアップオプションajaxを再度呼び出すよりも、ajaxをもう一度呼び出すと言うことができます。これは一度しか動作しませんか? – Pengume
私はそれがajaxStopの目的だと思っていました。 ajaxCompleteは、1つのajax呼び出しが完了したときです。私が上で言ったことは間違っていた。ドキュメントをセレクタとして使用しても何も変更されませんでした。 – Pengume
私はそれを何かを付けるよりもグローバルリスナーとして使用しました。だからあなたはあなたの文書の中で$ .ajax(___)を行うことができます。準備が整った$(document).ajaxComplete()は一旦$ .ajax()を起動します。だから、ドキュメントの中に10個のajaxコールがあるとしましょう。一度すべてが$(document).ajaxCompleteを終了すると、この10回の呼び出しが終了すると起動します。あなたが達成しようとしていることではありませんか? – Vic