【发布时间】:2020-11-22 13:37:27
【问题描述】:
我正在制作一个网站,其中有你的步骤计数器。
这是我在开始和学习时为自己做的练习。
脚本每秒都会添加一个步骤,直到达到“steps”(此示例为 5)
我希望用户能够单击添加 100 步,这样它就不会在 5 处结束。
我正在使用for() 完成所有这些操作,因为这是我发现以后在每个步骤中更新页面上的内容的最简单方法。
故事讲述的是:
- 用户看到步数上升,1、2、3、4、5
- 他们可以点击“加 100”来再增加 100 步(这样计数器就会继续运行)
- 计数器已更新并一直持续到 105(意味着他们刚刚添加的前 5 + 100 个)
- 如果他们愿意,他们可以再次增加 100 步(他们不必等到计数器达到 105)
- 然后转到 205
它实际上不起作用,我看不出有什么问题。
我用 100 和console.log() 替换步骤来调试一下。但它不会将 100 添加到上一步值,也不会更新 for() 以继续到 105。
感谢您的帮助
let steps = 5;
$( document ).ready(function() {
$(document).on("click", ".add", function() {
let steps = 100; // should be actual steps value + 100
console.log(steps);
});
for (var i = 0; i < steps; i++) {
var nbOfSteps = 0 // the numer of steps actually displayed to the user
setTimeout(function () {
nbOfSteps++;
var addSteps = $("<div />", {"class": "steps"})
.css({})
.append($("<p>" + nbOfSteps + " steps </p>"))
.appendTo(".one")
$(".steps").prev().remove();
// do some other things here
}, 1000 * i) //update i every 1000 milliseconds
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="one" id="gauche"></div>
<div class="add"> add 100 steps</div>
编辑
所以我一直在尝试
$( document ).ready(function() {
let foots = 3;
let i = 0;
while (i < foots) {
setInterval(function () {
console.log(i);
}, 1000)
i++;
if (i > foots) {
console.log("ping")
}
}
});
正如@sirEgghead 建议的那样。但我似乎无能为力。
【问题讨论】:
标签: javascript html jquery for-loop