Em có làm thử một cái đồng hồ đếm ngược dùng setTimeout, khi click vào button thì đồng hồ sẽ chạy. Khổ nổi là nhấn 1 lần vào thì chạy ngon lành nhưng nhấn cái nữa thì đồng hồ nó đếm ngược rất nhanh
. Em nghĩ là do hàm được setTimeout quá nhiều lần. Vậy mọi người cho em hỏi có cách nào kiểm tra xem hàm đã được setTimeout hay chưa để khỏi bị set quá nhiều lần 
Cách kiểm tra xem hàm trong Javascript đã được setTimeout hay chưa
sao ko click 1 lần rồi disable cái button luôn
1 Like
Cho 1 biến chứa id return từ hàm setTimeout
Rồi sau đó mỗi lần click là
if(!clockID) {
clockID = setTimeout(...);
}
với ID này cũng dễ clear hơn với hàm clearTimeout(id)
2 Likes
Theo mình thì bạn gắn cờ cho nút button để khi kích lần thứ 2 thì nó ngừng chạy nhé.
1 Like
Ok cảm ơn các bác, em làm được rồi.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?