Cách để tránh bị cộng dồn thời gian của chức năng setTimeout, Js, React Js

Chào mọi người, em đang gặp một cái vấn đề đó là em có một cái div khi click vào function của nó thì nó sẽ setTimeout ra. Nhưng mà em lại chỉ muốn nó chạy xong cái thời gian đã rồi người dùng mới có thể bấm thêm lần tiếp được. ( Trong thời gian ấy người dùng không thể kích hoạt function thêm, hay bấm thêm cho tới khi hết thời gian được cài đặt. )

Trường hợp của em là khi em click một lần thì chạy ổn, nhưng mà khi click nhiều lần liên tiếp ngay lập tức là nó bị cộng dồn thời gian loạn cả lên.

Em xin cảm ơn ạ,

Đơn giản thôi :penguin:. Disable cái button đó rồi đợi sau khi chạy setTimeout xong rồi thì enable lại.

4 Likes

Em không có kiến thức về mấy phương đó cho lắm, anh có thể cho em xin vài ví dụ được không ạ

Có gì phức tạp đâu :V. Set cái thuộc tính disable của button về true là được, muốn enable lại thì set thành false(khi button bị disabled thì user sẽ không thể nhấn vào được, coi như để đó chưng cho vui).

https://www.w3schools.com/jsref/prop_pushbutton_disabled.asp

4 Likes

E cảm ơn ạ, e đang làm cái loader trang, mỗi khi user click vào nút buy thì sẽ hiện cái loader tầm 2s rồi xuất hiện giỏ hàng nhưng khi em bấm liên tiếp liền bị rối giỏ hàng mở bằng số lần mình click luôn. Cho nên e mới muốn làm cái function khi user click vào thì sẽ chỉ được một lần cho tới khi mà cái giỏ hàng hiện xong thì mới có thể click được lần nữa và cứ lặp đi lặp lại như vậy

Tích Solution đi em ơi :smiley:.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?