我在JavaScript中有一个滚动文本,里面有一些变量。
我通过PHP脚本获取变量,然后在滚动文本上打印它们。
问题是(我认为)脚本在页面加载完成之前没有时间获取变量,所以我得到的变量变为=' undefined'。
但是,如果在phpscript之后但在填充滚动条之前我拨打了alert();
,在我点击“确定”之后滚动条中填充了有关变量的正确信息。
如何让代码等待填充变量然后加载页面?
代码:
var test;
$.ajax({ url: 'getSlaTCO.php', success: function (data) { test = data } });
var memorycontent = test;
function populatescroller() {(...)}
正确填充的方式:
var test;
$.ajax({ url: 'getSlaTCO.php', success: function (data) { test = data } });
alert('hey there!');
var memorycontent = test;
function populatescroller() {(...)}
答案 0 :(得分:0)
在ajax调用的success函数中调用scroll函数。这样,直到成功的ajax调用才会启动。
答案 1 :(得分:0)
在ajax回调函数中调用populatescroller
。您可以保证获得您的数据。
通过插入alert
语句,你正在搞乱(偶然)导致它工作的时间。
答案 2 :(得分:0)
在ajax成功回调中完成你需要的所有东西,这就是为什么它在那里:)
$.ajax({ url: 'getSlaTCO.php', success: function (data) {
test = data;
alert('hey there!');
var memorycontent = test;
populatescroller();
} });
答案 3 :(得分:0)
你的$ .ajax调用是异步的,所以其他所有东西都在加载它,而它正在做它的事情。您应该在成功函数回调中显示滚动条。首先要确保隐藏div(span / p)(无论滚动条是什么)(设置为display:none
)。然后:
$.ajax({ url: 'getSlaTCO.php', success: function (data) {
populatescroller(data);
$('#scroller').show();
}});
在populatecroller函数中没有看到你的标记或什么,这是我能给出的最好的例子。
答案 4 :(得分:0)
您的所有答案都有效,但我找到了更好的解决方案。 在ajax代码中,只需将async值设置为false:
$.ajax({
url: 'getSlaTCO.php',
async: false,
success: function (data) {
valSlaTco = data;
}
});
那就做到了!