Saya tidak tahu mengapa n kali di dalamnya tidak meningkat, dan bagaimana untuk mengosongkan pelaksanaan selepas melaksanakannya tiga kali.
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();
}
}
Dalam acara mengikat, pertama n++ dan kemudian laksanakan closeM(n) n=n++ dalam closeM(n) mesti dialih keluar.
Untuk kali ketiga, hanya jika (n==3) {$("#swtCenter2").fadeOut(1000);} akan lakukan
atau ini
Sebenarnya, idea anda pada asasnya sangat jelas, tetapi butirannya masih kurang jelas. Sebagai contoh, nilai
setTimeout(openMpM, 50000);
这句话会在每次closeM()
的时候执行,与n
tidak relevan.Sebagai tambahan kepada nilai
n = n++
不会改变n
, ia bersamaan denganBerikut ialah kod saya yang diubah suai. Soalan ini sama seperti yang anda tanya, jadi saya tidak akan menjawabnya di sana.
n = n++;
Disebabkan n keutamaan operator, n tidak berubah
jadi ia harus terus ++n;