2012-04-09 86 views
2

我的代碼是

data1 = ""; 

$('#send').click(function(){ 
    var post = $(this).val(); 

    $.post('post.php',{post:post},function(data){ 
     data1 = data; 
    }); 

    $(this).val(data1); 
}); 

似乎功能。點擊的所有進程正在執行的.post的$函數之前執行。有誰能夠幫助我。

+0

這是因爲。員額()是異步的。 – j08691 2012-04-09 04:01:11

+1

我不知道爲什麼這個問題起來投票。它每天都會被問到,並且是關於Ajax最基本的事情之一。甚至在Ajax的第一個字母裏! – 2012-04-09 04:12:56

+1

@AndrewBarber:並非每個人都是AJAX專家,人們也不知道Google的正確術語。如果你可以找到一個OP可以查看的問題來準確理解如何解決他的問題,那麼將這個問題標記爲另一個問題的副本。 – Blender 2012-04-09 04:31:49

回答

7

.post()是異步的,這意味着它在後臺運行並且不會阻止後面的函數的執行。在設置data1 = data之前,$(this).val()已被調用。

嘗試編碼是在data$.post()功能的回調依賴的一切:

$('#send').click(function() { 
    $.post('post.php', { 
    post: $(this).val() 
    }, function(data) { 
    $('#send').val(data); 
    }); 
}); 
相關問題