在我篡改桌面上的所有内容之前,请有人告诉我为什么这不起作用。
我有以下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')”的内容,那么它确实有效,它似乎不适用于我定义的函数。 在函数结尾处使用或不使用分号进行调用没有区别,也没有为此添加前缀。我的职能。
我正在努力让这个工作,所以我可以开始使用它来设置仪表的动画。谁能明白为什么它不起作用?
我讨厌网络开发。
答案 0 :(得分:2)
更改
setInterval("render();", 1000);
要
setInterval(render, 1000);
将字符串传递给 setInterval()时,内部代码在当前范围之外执行。无论如何,通过该功能更合适。如果您将括号括起来,函数可以像任何其他变量一样传递。
答案 1 :(得分:0)
我不确定为什么只使用“render()”不起作用,但使用此代码将解决问题。
function startRendering() {
setInterval(function(){
render()
}, 1000);
}