Javascript 在jquery get之外丢失var
由于某种原因,当试图在函数外部使用get函数时,get函数中的新数据正在丢失。警报显示为0,但当我将警报放在get函数中时,它会显示80,这是它应该显示的值。有什么想法吗Javascript 在jquery get之外丢失var,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,由于某种原因,当试图在函数外部使用get函数时,get函数中的新数据正在丢失。警报显示为0,但当我将警报放在get函数中时,它会显示80,这是它应该显示的值。有什么想法吗 var newdata = 0; //Get latest stat from file $.get( "http://localhost/?stat=size", function( data ) { //Strip any letters from result (if any) newdata = data
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
//alert( "Load was performed."+newdata );
});
alert( "Load was performed."+newdata );
谢谢您的变量没有丢失,jQuery get是一个异步请求。这意味着,当您发出警报时,您尚未取回数据,因此它仍将返回0 您可以将代码更改为同步运行,这将解决您的问题,但是您应该小心,因为这将阻止更多的代码执行,直到您得到响应为止
$.ajax({
url: 'http://localhost/?stat=size',
success: function(data) {
newdata = data.replace(/\D/g,'');
},
async: false
});
不过,我建议只运行在get success中需要执行的操作,这意味着它只会在检索到数据后运行,不会阻止任何其他执行
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
alert( "Load was performed."+newdata );
});
看看它是否能正常工作,不管它是否停止其他代码,都是基于时间的。我将functionresult更新为functiondata。非常好,谢谢你的帮助。