0

JQuery を学んでいるうちに、AJAX を知る必要性に出くわしました。Python の SimpleHTTPServer を使用して、ローカルで実験を行っています。AJAX リクエストの開始時と完了時に、コンソールにログを記録したいと考えています。より正確には、onclickアクションを取得したボタンがあります:

function ddd_ajax(){
    $("#ajax_content").load("ajax_load.html")
}

... そして、AJAX リクエストを開始するときのロードを示す div:

$("#indic_loading").bind('ajaxSend', function(){
    $(this).show();
    console.log("Ajax START!");
    alert("Ajax START!");
}).bind('ajaxComplete', function(){
    $(this).hide();
    console.log("Ajax Complete!");
    alert("Ajax Complete!");
})

残念ながら、ログとアラートの両方はありません。おそらく、load() は AJAX O_o を作成しませんか? どんな助けでも感謝します。

4

1 に答える 1

0

ドキュメントから:

jQuery 1.8 以降、.ajaxStart() メソッドはドキュメントにのみ添付する必要があります。

例:

$(document).on('ajaxSend', function(){
    $("#indic_loading").show();
    console.log("Ajax START!");
    alert("Ajax START!");
}).on('ajaxComplete', function(){
    $("#indic_loading").hide();
    console.log("Ajax Complete!");
    alert("Ajax Complete!");
});

この理由は、ページで発生するすべての AJAX の一般的なイベントでajaxStartありajaxComplete、次のようなものを書くことができるため、特定の要素にバインドされていないためです。

// No elements specified
$.ajax("mypage.html", {
    data: { param: 1 }
});

.loadグローバル イベントにバインドする代わりに、イベントへのコールバックを登録することができます。

function ddd_ajax(){
    console.log("AJAX Started");
    $("#ajax_content").load("ajax_load.html", function() {
        console.log("AJAX Complete");
    })
}
于 2013-10-16T06:56:07.607 に答える