JavaScript滚动文本不会加载变量

时间:2013-11-19 16:54:25

标签: javascript php jquery

我在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() {(...)}

5 个答案:

答案 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;
    }
});

那就做到了!