javascript - setInterval问题(js)

标签 javascript jquery setinterval

我已经尝试修复这个脚本一个多小时了,但仍然无法让它工作。它是一个在 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/

相关文章:

javascript - 缩小浏览器窗口时阻止背景图像调整大小

javascript - 检查工作日编号时出现弃用警告

JavaScript setInterval 函数仅淡入文本一次

javascript - setInterval 调用中的参数之间的差异

javascript - 在 IE 和 Firefox 中使用嵌套在按钮内的 ng-mousedown 调用 Angular Controller 函数

node.js - 如何杀死特定项目(nodejs)的setInterval(clearInterval)

javascript - 用html元素替换某些字符

javascript - 如何在提交表单之前立即对 radio 输入设置 CustomValidity

php - 需要一些解决办法。 jquery 中的点击事件中未调用 Javascript 函数

javascript - 在 Ajax 调用后将值设置为 parent 的 parent 的 child 的 sibling