setInterval +随机数

时间:2015-11-30 19:35:06

标签: javascript jquery

我正在尝试创建一个每5秒生成一个数字的函数,但是当我使用这些函数时会出现一个问题,因为我希望在这个数字上有SELECT p.name FROM `geotree` AS node, `geotree` AS p WHERE node.lft BETWEEN p.lft AND p.rgt AND node.rgt='$value' ORDER BY p.lft 函数。我收到此错误消息:

  

未捕获的ReferenceError:x未定义

循环工作只是不知道如何修复此错误。谢谢你的帮助

animateNumber()

2 个答案:

答案 0 :(得分:1)

x变量在myInterval函数中定义,因此在ref()内无法访问 - 因此出错。你需要提高它的范围:

var x = 0;

function myInterval() {
    x = Math.round(Math.random() * 5000) + 1;
}

var timeoutId = setTimeout(ref, 100);
var intervalId = setInterval(ref, 5000);
var intervalId = setInterval(myInterval, 5000);

// ANIMATED NUMBER

function ref() {
    $("#budget-left").animateNumbers(x);
}

另请注意,如果您有一个计时器,调用单个函数同时生成数字然后显示它,逻辑会更有意义。试试这个:

var intervalId = setInterval(function() {
    var randomNumber = Math.round(Math.random() * 5000) + 1;
    $("#budget-left").animateNumbers(randomNumber);
}, 5000);

答案 1 :(得分:0)

范围界定就是问题。

        var x =0;
  function myInterval() {
    x = Math.round(Math.random() * 5000) + 1;
    }

    var timeoutId = setTimeout(ref, 100);
    var intervalId = setInterval(ref, 5000);
    var intervalId = setInterval(myInterval, 5000);

    // ANIMATED NUMBER

    function ref() {
        $("#budget-left").animateNumbers(x);
    }