Je ne sais pas pourquoi les n fois n'augmentent pas et comment effacer l'exécution après l'avoir exécutée trois fois.
var firstShow = 1000;
var secondShow = 5000;
var threeShow = 10000;
setTimeout(openMpM, firstShow);
function openMpM() {
$("#swtCenter2").fadeIn(1000);
}
var n = 0;
function closeM(n) {
$("#swtCenter2").fadeOut(1000);
setTimeout(openMpM, 50000);
n = n++;
if (n == 1) {
setTimeout(openMpM, secondShow);
}
if (n == 2) {
setTimeout(openMpM, threeShow);
}
if (n == 3) {
clearTimeout();
}
}
Dans l'événement de liaison, n++ d'abord, puis exécutez closeM(n). Le n=n++ dans closeM(n) doit être supprimé.
Pour la troisième fois, juste si (n==3) {$("#swtCenter2").fadeOut(1000);} fera l'affaire
ou ceci
En fait, votre idée est fondamentalement très claire, mais les détails sont encore un peu flous. Par exemple, la valeur de
setTimeout(openMpM, 50000);
这句话会在每次closeM()
的时候执行,与n
n’a pas d’importance.En plus de la valeur
n = n++
不会改变n
, cela équivaut àCe qui suit est mon code modifié. Cette question est la même que celle que vous avez posée, je n'y répondrai donc pas ici.
n = n++;
En raison de la priorité de l'opérateur n, n n'a pas changé
il devrait donc être directement ++n;