var mark2=true;
$(".kanan").klik(function(){
if(mark2){
move(1);
mark2=false;
}
})
gerak fungsi(obj){
obj.animate({
width: arrW[index],
height: arrH[index],
opacity: arrO[index],
left: arrL[index],
top: arrT[index]
},500,function(){
mark2=true;
})
}
Klik $(".right") untuk melaksanakan fungsi alih, terutamanya untuk menambah animasi pada elemen obj Untuk mengelakkan $(".right") daripada mengklik terlalu cepat dan bertindih animasi, mark2 digunakan untuk mengawalnya . Apabila animasi Selepas pelaksanaan selesai, iaitu, tanda akan menjadi benar selepas 500 milisaat Klik $(".right") untuk melaksanakan, jika tidak, ia tidak akan melaksanakan kelajuan lebih besar daripada 500 milisaat, tanda dalam pernyataan if Tiada peluang untuk melaksanakannya, jadi saya mengklik sekali lagi Bukankah itu bermakna animasi sentiasa ditindih? Disebabkan mark sentiasa benar, nampaknya pemahaman saya salah, kerana program tersebut boleh dilaksanakan seperti biasa, jadi saya harap ada yang dapat memberi tunjuk ajar kepada saya tentang proses pelaksanaan program
Saya faham bahawa inti masalah anda ialah kelajuan klik lebih daripada 500ms Ini benar, hanya
mousedown mouseup
事件后才会触发click
peristiwa dicetuskan satu demi satu pada elemen yang sama. move() akan dilaksanakan hanya selepas acara klik dicetuskanJadi situasi tamat masa yang anda pertimbangkan tidak akan berlaku.
Kalau nak guna variable control, seelok-eloknya letak mark2 ke atas untuk memudahkan pemahaman. Prosesnya adalah seperti ini:
Jika anda:
Klik kanan -----》Jalankan animasi tak segerak-----》tanda2 = palsu ----(selepas 0.5s)----》tanda2 = benar;
Jadi tidak kira bagaimana anda mengklik, sama ada lebih besar daripada 0.5s atau kurang daripada 0.5s, melainkan animasi telah selesai dijalankan dan tanda2 adalah benar, syarat if tidak akan masuk sama sekali