簡體   English   中英

如何更新Ajax調用(不包含內容)

[英]How to update Ajax call (not content)

請看下面的代碼-在內容被調用后,如何殺死/更新或重新啟動ajax調用(不是Ajax調用的內容)?

我的意思是$('#posting_main')被稱為onclick並具有動畫-如何停止ajax並使其在另一個單擊上$('#posting_main')另一個$('#posting_main')

 $(document).ready(function() {

 $("#img_x_ok").click(function(e){
 e.preventDefault();

 var post_text = $.trim($("#main_text_area").val());

 var data_text = 'post_text='+ post_text;
 if (post_text === "") return;

 var xhr = $.ajax({

 type: "POST",
 url: "comm_main_post.php",
 data: data_text,
 cache: false,

 success: function (data){
 //content

 $("#posting_main").fadeIn();
 $("#posting_main").load("pull_comm.php");
 $("#main_text_area").attr("value", "");

 $("#posting_main").animate({ 
     marginTop: "+=130px",
 }, 1000 );

 }

 }); //ajax close

 }); }); //both functions close

您可以使用以下方法中止當前請求

xhr.abort();

完成之后,您可以運行另一個$.ajax(...)發出第二個請求。


您可以像下面這樣實現它。 注意縮進代碼使其更具可讀性!

 $(document).ready(function() {

     var xhr; // by placing it outside the click handler, you don't create
              // a new xhr each time. Rather, you can access the previous xhr
              // and overwrite it this way

     $("#img_x_ok").click(function(e){

         e.preventDefault();

         var post_text = $.trim($("#main_text_area").val());

         var data_text = 'post_text='+ post_text;
         if (post_text === "") return;

         if(xhr) xhr.abort(); // abort current xhr if there is one

         xhr = $.ajax({

             type: "POST",
             url: "comm_main_post.php",
             data: data_text,
             cache: false,

             success: function (data){
                 //content

                 $("#posting_main").fadeIn();
                 $("#posting_main").load("pull_comm.php");
                 $("#main_text_area").attr("value", "");

                 $("#posting_main").animate({ 
                     marginTop: "+=130px",
                 }, 1000 );

             }

         });

     });

});

我不確定我是否完全理解您的問題,但是:

  1. xhr.abort()將終止AJAX請求。 調用abort()之后,可以根據需要修改並重新發送請求。
  2. $(“#posting_main”)。stop()將停止fadeIn動畫。 (而且我認為您可能需要在$(“#posting_main”)。hide()之后加上它,以確保它不會部分可見。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM