Rumah > Soal Jawab > teks badan
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
伊谢尔伦2017-05-19 10:14:53
Sebab (i > 3) ? i = -1 : changeClass(i);
Apabila i=4 (i > 3) ? , jika 4 pasti lebih besar daripada 3, laksanakan i = -1,Fungsi changeClass(i) tidak akan dilaksanakan, jadi tiada li dengan subskrip 4
習慣沉默2017-05-19 10:14:53
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)
仅有的幸福2017-05-19 10:14:53
Yang keempat tidak boleh ditutup, jadi disyorkan untuk menukar i>3 kepada i>4 atau i>=3