2011-08-26 143 views
4

我在JavaScript中有一個功能,我嘗試從一個功能改變的全局變量,但總是返回相同的初始值3:全局變量的Javascript

例如:啓動值3,函數值0,但始終警惕3.

var test = 3; 
    jQuery.ajax({ 
     type: "POST", 
     url: "ajax_js.php", 
     data: String, 
     success: function(result){ 
      test = result; 
       if(result == 0){ 
       $('input[name=user_name]').val(''); 
       } 
      } 
    }); 
    alert(test); 

回答

4

Ajax中的A表示異步。

在請求完成之前調用您的警報,然後調用success並有機會更新變量。

嘗試將警報移入回調函數,看看是否有效。

+0

你是對的,但你知道我可以做什麼之前警報先調用成功函數嗎? :) – blackriderws

+0

如果您需要在成功後發生某些事情,則需要將該代碼移入函數success。 – Thilo

4

把你的var test = 3;外部的功能,例如:

<script type="text/javascript"> 
var test = 3; 
$('#button').click(function() { 
jQuery.ajax({ 
    type: "POST", 
    url: "ajax_js.php", 
    data: String, 
    success: function(result){ 
     test = result; 
     alert(test); 
      if(result == 0){ 
      $('input[name=user_name]').val(''); 
      } 
     } 
}); 
}); 

</script>