作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
var err = '';
err += 'err a';
myString = 'Blah';
new Ajax.Request('/check_me.php',
{
method:'get',
parameters: {
'string': myString
},
evalScripts: true,
onComplete: function(t){
var response = t.responseText;
if (response == false) {
//do nothing
} else {
err += 'err b.\n';
//alert(err);
}
}
});
err+= 'err c';
alert(err);
在上面,它应该警告“err a”+“err b”+“err c”。但我只是得到“err a”+“err c”。如果我尝试在 oncomplete 中使用 alert(err),那么我可以看到文本被附加到它之前的任何值上。在这种情况下,“err a”+“err b”。如果我关闭这个警告框,最终的警告框,只会显示a和c。
所以它是从一个全局变量中读取值而不是写入它。
如何让它工作,即将它也设置为“b”??
谢谢
最佳答案
Ajax 请求是异步发生的,所以在您的 ajax 调用被调度后,您页面上的 Javascript 将继续执行,无论响应是否已返回。
因此,当您的脚本警告 err
变量时,您得到的输出不是您期望的,因为 onComplete
尚未被调用。
关于javascript - 如何在 Javascript 函数中将文本附加到变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288035/
我是一名优秀的程序员,十分优秀!