2

私のコードは

data1 = "";

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

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

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

$ .post関数を実行する前に、関数.clickのすべてのプロセスが実行されているようです。誰か助けてくれませんか。

4

1 に答える 1

7

.post()は非同期です。つまり、バックグラウンドで実行され、その後の関数の実行をブロックしません。data1 = dataが設定される前に、$(this).val()はすでに呼び出されています。

関数のコールバックdataに依存するすべてをコーディングしてみてください。$.post()

$('#send').click(function() {
  $.post('post.php', {
    post: $(this).val()
  }, function(data) {
    $('#send').val(data);
  });
});
于 2012-04-09T04:00:46.773 に答える