我已经尝试修复这个脚本一个多小时了,但仍然无法让它工作。它是一个在 setInterval 中执行动画和 html jquery 事件的循环。
这是 fiddle :http://jsfiddle.net/GNrL3/
这是代码(与 fiddle 相同,但有些人更喜欢放在这里):
$(document).ready(function() {
var i = 1;
var startinterval = 0;
$('#clickhere').click(function() {
startinterval = setInterval("curvalues()", 1000);
});
function curvalues() {
if ($i == 20) {
clearInterval(startinterval);
}
else {
$("#square").animate({
"left": "+=30px"
}, "slow");
$("#text").html("Barracks");
$i++;
}
}
});
<div id="square" style="position:absolute;height:30px;width:30px;background-color:#F07014;"></div>
<br /><br /><br /><br /><br />
<div id="text" style="height:30px;width:100px;border:1px solid #000">Text box</div>
<br /><br />
<input type="button" value="Start" id="clickhere"/>
我认为问题涉及函数的 setInterval,但语法对我来说似乎不错......
最佳答案
您遇到函数范围问题。而不是这个:
setInterval("curvalues()", 1000);
这样做:
setInterval(curvalues, 1000);
编辑您还有一个错误。您的计数器变量名称错误。它应该这样声明:
var $i = 1; //You missed the '$'
(或用 i
而不是 $i
引用所有变量)
我更新了你的 fiddle :http://jsfiddle.net/GNrL3/1/现在可以使用了。
希望这有帮助。干杯
关于javascript - setInterval问题(js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605639/