带有JQuery的HTML5 + Jscript,setInterval问题

时间:2010-09-16 09:47:22

标签: html html5 javascript setinterval

在我篡改桌面上的所有内容之前,请有人告诉我为什么这不起作用。

我有以下html文档:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html"; charset=utf-8 />
    <title>Sample Gauge using JQuery</title>
</head>
<body>
    <canvas id="gauge" width="200" height="200">
    Your web browser does not support HTML 5 because you fail.
    </canvas>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="gauge.js"></script>
</body>
</html>

和gauge.js:

$(document).ready(function () {
    //(canvas gets assigned)

    startRendering();

    function startRendering() {
        setInterval("render();", 1000);
    }

    function render() {
        renderBackground();
        renderNeedle(-172);
    }

    //(Defined functions for rendering a gauge)
});

render()不会被调用,但是如果我将setInterval行更改为'render()'就行了。 此外,如果我更改setInterval()以包含类似“alert('LOL')”的内容,那么它确实有效,它似乎不适用于我定义的函数。 在函数结尾处使用或不使用分号进行调用没有区别,也没有为此添加前缀。我的职能。

我正在努力让这个工作,所以我可以开始使用它来设置仪表的动画。谁能明白为什么它不起作用?

我讨厌网络开发。

2 个答案:

答案 0 :(得分:2)

更改

    setInterval("render();", 1000);

    setInterval(render, 1000);

将字符串传递给 setInterval()时,内部代码在当前范围之外执行。无论如何,通过该功能更合适。如果您将括号括起来,函数可以像任何其他变量一样传递。

答案 1 :(得分:0)

我不确定为什么只使用“render()”不起作用,但使用此代码将解决问题。

function startRendering() {
    setInterval(function(){
        render()
    }, 1000);
}