9

ajaxを使用してjQueryモーダルウィンドウでコンテンツを送信するための簡単なjqueryコードがあります! すべてが問題なく動作しています。通常、送信ボタンをクリックした後、1〜2秒後にこのコードが結果を表示し、

function AddFastqpro(action) {
    var b = {};
    b[dle_p_send] = function () {
        var response = $('#dle-poke').val()
        $.post(dle_root + 'engine/ajax/fast.php', { text: response, action: action },
        function (data) {
            if (data == 'ok') {
                DLEalert(dle_p_send_ok, dle_info);
            }
            else { DLEalert(data, dle_info); }
        });
    };

    $('body').append("<div id='dlepopup' style='display:none'><textarea id='dle-poke'></textarea></div>");

    $('#dlepopup').dialog({
        autoOpen: true,
        modal: true,
        draggable: false,
        width: 350,
        dialogClass: "modalfixed",
        buttons: b
    });
};

私の質問は、送信をクリックした後、結果を表示する前に、読み込み中の画像を追加して表示するにはどうすればよいですか?

4

3 に答える 3

24

あなたはこれを行うことができ ajaxStart()ます ajaxComplete()

$("#loading").ajaxStart(function(){
   $(this).show();
 });

$("#loading").ajaxComplete(function(){
   $(this).hide();
 });

また

$.ajax({
   url : dle_root + 'engine/ajax/fast.php',
   data: { text: response, action: action },
   beforeSend: function(){
     $("#loading").show();
   },
   complete: function(){
     $("#loading").hide();
   },
   success:  function (data) {
        if (data == 'ok') {
            DLEalert(dle_p_send_ok, dle_info);
        }
        else { DLEalert(data, dle_info); }
    });
 });
于 2012-12-04T15:14:21.497 に答える
5
$('#button').click(function(){
    $('#loading-div').html('<img src="..." />');
    $.ajax({
       type: 'POST',
       url: '...',
       data: {...},
       success: function(response) {
          $('#loading-div').html('');
       }
    });
});

の付いたボタンがありid="button"<div id="loading-div"></div>画像を表示できるものがある場合

http://api.jquery.com/jQuery.ajax/

于 2012-12-04T15:18:12.433 に答える
1

$.ajax()の代わりに使用$.post()でき、beforeSend関数を追加できます

于 2012-12-04T15:16:50.040 に答える