recherche

Maison  >  Questions et réponses  >  le corps du texte

fonction javascript setInterval()

Utilisez la fonction setInterval() pour ajouter dynamiquement du CSS à li

<ul>
    <li> 1 </li>
    <li> 2 </li>
    <li> 3 </li>
    <li> 4 </li>
  </ul>
var i = -1;
setInterval(function(){
  i++;.
  console.log(i);
  (i > 3) ? i = -1 : changeClass(i);

}, 1000);

function changeClass(j) {
  $('li').eq(j).addClass('cur').siblings().removeClass('cur');
}

Il s'avère que le changement de i est 0->1->2->3->4->0->1->2->3->4. ce qui suit Après avoir ajouté du CSS au li marqué par 3, il y aura un intervalle de 1 s avant qu'il continue à basculer dynamiquement, car il n'y a pas de li marqué par 4. Quelle est la cause de cela

为情所困为情所困2829 Il y a quelques jours525

répondre à tous(5)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:14:53

    Parce que (i > 3) ? i = -1 : changeClass(i); opération ternaire,

    Quand i=4 (i > 3) ? Cela signifie-t-il que 4 est supérieur à 3 ? , si 4 est définitivement supérieur à 3, exécutez i = -1,

    La fonction changeClass(i) ne sera pas exécutée, il n'y a donc pas de li avec l'indice 4

    répondre
    0
  • 某草草

    某草草2017-05-19 10:14:53

    i大于3的时候,i=-1了。同时这次没有执行changeClass(i)
    if(i > 3) i = 0;changeClass(i)

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:14:53

    0 - 3 est déjà 4. Ce n'est que lorsque vous écrivez (i > 3) qu'il deviendra -1, ce qui signifie qu'il faudra cinq exécutions avant qu'il devienne -1
    Si vous voulez Après avoir couru ; 4 fois, il devient -1 et doit être remplacé par (i >= 3)

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:14:53

    if(i<3){
        changeClass(i);
    }else{
        changeClass(i);
        i = -1 
    }

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:14:53

    Le quatrième ne peut jamais être raccroché, il est donc recommandé de changer i>3 en i>4 ou i>=3

    répondre
    0
  • Annulerrépondre