Gunakan fungsi setInterval() untuk menambahkan css secara dinamik pada 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');
}
Didapati bahawa perubahan i ialah 0->1->2->3->4->0->1->2->3->4 yang berikut Selepas menambah css pada li yang ditandakan dengan 3, akan ada selang 1s sebelum ia terus bertukar secara dinamik, kerana tiada li yang ditandakan dengan 4. Apa yang menyebabkan ini
Sebab (i > 3) ? i = -1 : changeClass(i);
Apabila i=4 (i > 3) ? , jika 4 pasti lebih besar daripada 3, laksanakan i = -1,0 - 3 sudah 4. Hanya apabila anda menulis (i > 3) ia akan menjadi -1, yang bermaksud ia akan mengambil masa lima larian sebelum menjadi -1
Jika anda mahu menjalankannya 4 kali, ia akan menjadi -1 -1 hendaklah ditukar kepada (i >= 3)
?
Yang keempat tidak boleh ditutup, jadi disyorkan untuk menukar i>3 kepada i>4 atau i>=3