Ich weiß nicht, warum die n-Zeiten darin nicht zunehmen und wie ich die Ausführung nach dreimaliger Ausführung löschen kann.
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();
}
}
绑定事件里面先n++再执行closeM(n),closeM(n)里面的n=n++要去掉。
第三次直接if (n==3) {$("#swtCenter2").fadeOut(1000);}就行了
或者这样
其实你这个思路基本上已经很清楚了,只是在细节上还有点逻辑不清。比如
setTimeout(openMpM, 50000);
这句话会在每次closeM()
的时候执行,与n
值无关。另外
n = n++
不会改变n
值,它相当于下面是我修改后的代码,这个问题和你另外问的那个是同一个,我就不去那边回答了。
n = n++;
由於n算符優先級,所以n沒有改變
所以應該直接 ++n;