简单嵌套的 setTimeout() 只运行一次 (JavaScript)
Simple nested setTimeout() only runs once (JavaScript)
出于某种原因,我的galleryScroll()函数只运行一次,即使该函数使用setTimeout()调用自身。我认为这个问题可能与范围有关,但我不确定:
http://jsfiddle.net/CYEBC/2/
$(document).ready(function() {
var x = $('#box').offset().left;
var y = $('#box').offset().top;
galleryScroll();
function galleryScroll() {
x = x + 1;
y = y + 1;
$('#box').offset({
left: x,
top: y
});
setTimeout('galleryScroll()', 100);
}
});
该 HTML:
<html>
<head>
</head>
<body>
<div id="box">
</div>
</body>
</html>
函数
galleryScroll()
未在正确的范围内定义,以在setTimeout()
中进行评估。如果您希望它在循环中运行,请在函数之后setInterval()
调用它。
$(document).ready(function() {
var x = $('#box').offset().left;
var y = $('#box').offset().top;
galleryScroll();
function galleryScroll() {
x = x + 1;
y = y + 1;
$('#box').offset({
left: x,
top: y
});
}
// Call in setInterval() outside the function definition.
// Note also, I've changed the eval string 'gallerySroll()' to the function reference galleryScroll
setInterval(galleryScroll, 100);
});
这是更新的小提琴。
你的问题是你如何在setTimeout中调用galleryScroll()函数。将该行更改为:
setTimeout(galleryScroll, 100);
结果:http://jsfiddle.net/CYEBC/12/
注意:我不确定这是否是所需的行为,但这是正确调用代码时发生的情况。
相关文章:
- 显示数字,然后每5秒随机更改一次(javascript)
- 使函数只运行一次(Javascript)
- 仅当javascript的新内容出现时,才每3秒更新一次javascript
- 每天递减一个变量一次 - Javascript
- 每个用户/浏览器会话只加载一次Javascript
- 使用Greasemonkey每5秒执行一次Javascript
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- 如何只包含一次javascript文件
- 每周运行一次 JavaScript 函数
- 每天为每个新用户运行一次 JavaScript 函数
- 每 10 次访问(重新加载)显示一次 JavaScript 函数
- 简单嵌套的 setTimeout() 只运行一次 (JavaScript)
- 如何只添加一次JavaScript库
- 每X分钟运行一次JavaScript命令
- 每两次切换播放器一次JavaScript-AngularJS
- 追加一次javascript href link
- 当使用局部视图时,只添加一次javascript代码
- 查找匹配的img src并删除它存在不止一次- Javascript
- 加载cookie时只重载一次javascript页面
- 如何使这个函数运行不止一次JavaScript/jQuery