javascript - JavaScript 函数跳过
问题描述
我有一个脚本应该每 5 秒运行一次函数,具体取决于之前运行的函数,但它似乎每秒都在跳过。
let i = 0;
function testOne()
{
$("#two").fadeOut().css("display","none");
$("#three").fadeOut().css("display","none");
$("#four").fadeOut().css("display","none");
$("#five").fadeOut().css("display","none");
$("#one").fadeIn().css("display","block");
$("#iOne").addClass("btn-active");
$("#iTwo").removeClass("btn-active");
$("#iThree").removeClass("btn-active");
$("#iFour").removeClass("btn-active");
$("#iFive").removeClass("btn-active");
i++;
}
function testTwo() {
$("#one").fadeOut().css("display","none");
$("#three").fadeOut().css("display","none");
$("#four").fadeOut().css("display","none");
$("#five").fadeOut().css("display","none");
$("#two").fadeIn().css("display","block");
$("#iTwo").addClass("btn-active");
$("#iOne").removeClass("btn-active");
$("#iThree").removeClass("btn-active");
$("#iFour").removeClass("btn-active");
$("#iFive").removeClass("btn-active");
i++;
}
function testThree() {
$("#one").fadeOut().css("display","none");
$("#two").fadeOut().css("display","none");
$("#four").fadeOut().css("display","none");
$("#five").fadeOut().css("display","none");
$("#three").fadeIn().css("display","block");
$("#iThree").addClass("btn-active");
$("#iTwo").removeClass("btn-active");
$("#iOne").removeClass("btn-active");
$("#iFour").removeClass("btn-active");
$("#iFive").removeClass("btn-active");
i++;
}
function testFour() {
$("#one").fadeOut().css("display","none");
$("#two").fadeOut().css("display","none");
$("#three").fadeOut().css("display","none");
$("#five").fadeOut().css("display","none");
$("#four").fadeIn().css("display","block");
$("#iFour").addClass("btn-active");
$("#iTwo").removeClass("btn-active");
$("#iThree").removeClass("btn-active");
$("#iOne").removeClass("btn-active");
$("#iFive").removeClass("btn-active");
i++;
}
function testFive() {
$("#one").fadeOut().css("display","none");
$("#two").fadeOut().css("display","none");
$("#three").fadeOut().css("display","none");
$("#four").fadeOut().css("display","none");
$("#five").fadeIn().css("display","block");
$("#iFive").addClass("btn-active");
$("#iTwo").removeClass("btn-active");
$("#iThree").removeClass("btn-active");
$("#iFour").removeClass("btn-active");
$("#iOne").removeClass("btn-active");
i = 0;
}
window.setInterval(function()
{
if(i === 0) {
testOne();
i++;
} else if (i === 1) {
testTwo();
i++;
} else if (i === 2) {
testThree();
i++;
} else if (i === 3) {
testFour();
i++;
} else if (i === 4) {
testFive();
let i = 0;
}
}, 5000);
这些函数显示在“让 i = 0”之后,但是我选择不把它们放进去,因为它们太长了。他们所做的只是在 i++ 之前运行一些 jQuery 代码;或者让 i = 0; 关于第五个功能。
你知道为什么这可能是问题吗?
完整的 JS 代码 - https://hastebin.com/icalefafoy.js
- 本杰
解决方案
您递增i
两次,一次在间隔代码中,一次在函数本身中:
function testOne() {
//...
i++
}
//...
testOne();
i++
只是不要那样做。
推荐阅读
- python - 简单的多点 C++ 数学实现?
- flir - 相机崩溃后出现“节点不可写”异常
- javascript - 带参数的 JavaScript 事件函数如何工作?
- html - 如何在 Rmarkdown for HTML 中设置代码样式?
- c# - msp430g2553 如何将数据从板共享到 VS for C#
- java - 有没有一种简单的方法可以从 python 脚本中执行外部 java 程序?
- javascript - 响应 discord.js 中的消息
- javascript - Jest js node_modules\jest\node_modules\jest-cli\build\cli\index.js:227 } 捕捉 {
- quickfix - 修复重复组以重复使用相同的标签
- python - Selenium 日历选择器:我可以手动单击,但 Selenium 无法单击