2012-12-04 8 views
5

Ich habe einen einfachen jquery-Code, um einen Inhalt in einem jQuery-modalen Fenster mit ajax zu senden! Alles funktioniert ohne Probleme. in normalen, nach dem Einschalten der Sendetaste klicken, nach 1-2 Sekunden dieser Code das Ergebnis zeigt,Laden anzeigen, bevor das Ergebnis in jquery gesendet wird

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 
    }); 
}; 

Meine Frage ist, wie ich ein Laden Bild das Ergebnis nach einem Klick auf Senden und vor dem Anzeigen hinzufügen und zeigen können, ?

+1

Lasten von Proben auf SO, überprüfen Sie verwandte Artikel auf dieser Seite zum Beispiel anzeigen ... –

+0

Ich sehe nicht, Ihr Klickereignis gibt –

+0

http: //stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post –

Antwort

13

Sie können dies tun, indem ajaxStart() und ajaxComplete()

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

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

oder

$.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); } 
    }); 
}); 
+0

wo sollte ich diesen Code setzen? – Alireza

+0

@ Alireza Ihr sehr willkommen ,,,,, –

1

Sie $.ajax() statt $.post(), und fügen Sie eine beforeSend Funktion

5
$('#button').click(function(){ 
    $('#loading-div').html('<img src="..." />'); 
    $.ajax({ 
     type: 'POST', 
     url: '...', 
     data: {...}, 
     success: function(response) { 
      $('#loading-div').html(''); 
     } 
    }); 
}); 

Im Fall verwenden können, wenn Sie haben Knopf mit id="button", und einig <div id="loading-div"></div> in dem Du Bild

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

+0

Dies ist immer noch die beste Antwort! – proofzy

Verwandte Themen