javascript - Jquery自动增量值和检测重置

标签 javascript jquery settimeout setinterval

我从值 i=0 开始,最大值为 4,当脚本检测到值与 4 相同时,必须重新启动或将“i”的值重置为 0 作为默认值

i = 0;

function loading() {

  if (i == 4) {
    i = 0;
  }

  jQuery("#text").show(1000).hide(1000, function() {
    reloading();
  });
}


function reloading() {
  setInterval("loading()", 2000);
  alert("ok" + i);
  i++;
}


loading();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="text" style="position:relative;width:150px;height:150px;background-color:red;display:none;"></div>

我尝试将 div 显示 4 次并重置为 0 并在其他时间 0、1、2、3 开始,然后重置 0 并在其他时间开始,但不起作用,我不知道为什么会这样,我认为代码还可以,但肯定有问题

感谢高级的帮助

最佳答案

问题是当您调用函数 loading() 来启动动画变量时 i 值从 1 开始,而不是 0,因此它只进行了 3 次并且然后重置为 0。(因为经过 3 次迭代 i 变为 4)

所以在 if(i==4){ 中将 4 增加到 5,你就可以开始了

工作片段:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="text" style="position:relative;width:150px;height:150px;background-color:red;display:none;"></div>

<script>
    i=0;
    $(document).ready(function(){
        loading();
    });
    function loading(){
      if(i==5){
        i=0;
      }
      jQuery("#text").show(1000).hide(1000,function(){reloading();});
    }
    function reloading(){
      setInterval("loading()",2000);
      alert("ok"+i);
      i++;
    }
</script>

关于javascript - Jquery自动增量值和检测重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50362412/

相关文章:

javascript - Angularjs:如何将输入值传递给函数?

javascript - 如何在 AngularJs 中从另一个 Controller 访问一个 Controller

php - 如何将 PHP 数组传递给 jQuery 函数?

javascript - JavaScript 中是否可以使用 document.dispatchEvent 循环事件?

javascript - Vaadin 8 向 html head 标签添加代码的方式是什么?

javascript - Three.js 每个对象上有不同的 Material

jquery - 使用 jQuery 将 css 添加到 replaceWith 元素

javascript - 在我的自定义脚本之后 WooCommerce AJAX 重新加载页面

javascript - ClearTimeout 不能很好地工作(可能是在第一次定时器触发之前清除时)

javascript - NodeJS - 在 setTimeout 内等待返回