fonction javascript setInterval()
为情所困
为情所困 2017-05-19 10:12:53
0
5
498

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

为情所困
为情所困

répondre à tous(5)
伊谢尔伦

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

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

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)

仅有的幸福
if(i<3){
    changeClass(i);
}else{
    changeClass(i);
    i = -1 
}

仅有的幸福

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal