在發出警報時,它會始終發出警報jojo
。 test2.php
有文字Loco
javascript全局變量不會在ajax回調中更新
div得到更新爲Loco
但全局變量沒有變化。我試過window.temp = data
,但它沒有奏效。
如何獲取變量中的返回值?請指導...
<div>
yolo
</div>
<script type="text/javascript">
var temp = 'jojo';
$.ajax({
url: 'test2.php', //Loco
success: function(data)
{
temp = data;
$('div').html(data);
},
error: function (err)
{
alert('error');
}
});
alert(temp);
var toBeUsedLater = temp; //updated temp value from ajax call
refreshTab();
</script>
Bsien。我建議你閱讀關於ajax的異步行爲。 –
好吧,我從中得到了很多有用的信息。我是JavaScript的初學者,所以幫助了很多。我想我必須用'async:false'選項來解決我目前的情況。 – Bsienn
'async:false'使ajax同步,但在大多數情況下不會使用,因爲它會暫停執行,直到ajax返回並且頁面可能會凍結。所以放置'var toBeUsedLater = temp;'的更好的地方是在'success'回調(你在設置innerhtml的地方)或者在一些promise鉤子中。 你可以閱讀關於jQuery的承諾。 –