Значение автоинкремента Jquery и определение для сброса - PullRequest
0 голосов

Я начинаю со значения 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 и начать в другой раз, но не работает, я не знаю, почему это произошло, я думаю, что код это нормально, но что-то плохое

Спасибо за помощь в продвинутом

1 Ответ

0 голосов
/ 16 мая 2018

Проблема в том, что когда вы вызываете свою функцию loading() для запуска переменной анимации i значения начинаются с 1, а не с 0, и, следовательно, это происходит только 3 раза, а затем сбрасывается до 0. (потому что после 3 итераций i стать 4)

Так что увеличьте 4 до 5 в if(i==4){, и вам будет хорошо идти

Рабочий фрагмент: -

<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>
...