• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaScript opoznienie w klikaniu

VPS Starter Arubacloud
0 głosów
538 wizyt
pytanie zadane 14 listopada 2018 w JavaScript przez ptaku19 Użytkownik (800 p.)
edycja 14 listopada 2018 przez ptaku19

Witam, mam pewien problem, otóż probuje zablokowac mozliwosc klikniecia przycisku wyswietlanego na ekranie na np.3 sekundy po jego klikneciu i jak na razie nic mi nie wychodzi. Dodam ze stosuje true i false.

Prosilbym o wskazowke.

 

Przykladowy kod:

cos = []


function chooseButton(){
if(~Kod wywolujacy klikniecie w guzik){
cos.push(~jakiś obiekt)
}

 

1 odpowiedź

+1 głos
odpowiedź 14 listopada 2018 przez Tomek Sochacki Ekspert (227,490 p.)
wybrane 14 listopada 2018 przez ScriptyChris
 
Najlepsza
Taki najszybszy sposób i chyba najprostszy to po prostu użycie setTimeout, np.: https://codepen.io/anon/pen/RqpvqY

Tu masz na szybko przykład, gdy klikasz w button zlicza się jedno nowe kliknięcie i button jest wyłączany na 3 sekundy + jest to ostylowane kursorkiem not-allowed dla lepszego efektu.
komentarz 14 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Dziękuje bardzo :)
komentarz 14 listopada 2018 przez ptaku19 Użytkownik (800 p.)

@Tomek Sochacki, jeszcze mam pytanko, przycisk robilem w javaS, moze to potem poprawie na css'a, ale na ten moment  chcialbym zostawic w javaS i tutaj mam maly problem:

var disabled = false;

if(mouseX > 50 && mouseX < 100 && mouseY > 100 && mouseY < 100+50 &&disabled == false){
 disabled = true;
setTimeout('jakas funkcja, nie wiem co tu zrobic,3000)
}

 

komentarz 14 listopada 2018 przez Tomek Sochacki Ekspert (227,490 p.)

jakas funkcja, nie wiem co tu zrobic

eee... a skąd ja mam wiedzieć, co Ty chcesz zrobić :) ? Halo... Panie... to Ty piszesz apkę, a nie ja :)

Dałem Ci przecież praktycznie gotowca... tylko zmienić sobie po prostu na swoje body funkcji.

komentarz 14 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Wiem, po prostu w setTimeout, btn.disabled = false nie mozna zamienic z np. zmienna disabled bo po prostu trzeba tam wpisac funkcje, ale troche popracuje i mam nadzieje ze uda mi sie to zrobic :)
komentarz 14 listopada 2018 przez Tomek Sochacki Ekspert (227,490 p.)
setTimeout( () => {
  // body funkcji
}, 3000); // czas podajesz w ms

 

komentarz 14 listopada 2018 przez ptaku19 Użytkownik (800 p.)

 Dzięki , ale wlasnie udalo mi się to zrobic samodzielnie z czego jestem zadowolony :) Moze dluzsze ale co tam :P

var disabled = false;
function disabling (){
  disabled = false;
}
if(mouseX > 50 && mouseX < 100 && mouseY > 100 && mouseY < 100+50 && money >=50 &&disabled == false){
 disabled = true;
setTimeout(disabling,3000)
}

 

komentarz 14 listopada 2018 przez pablop76 VIP (123,340 p.)
Dodam tylko, że techniki usuwania skutków zbyt czestego wywoływania zdarzeń to throttling i debouncing.
komentarz 14 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Dzięki za rade, poszperalem troche na ten temat i mysle ze to calkiem przydatna rzecz, choc nie do konca wiem jak ona dziala :P
komentarz 14 listopada 2018 przez Tomek Sochacki Ekspert (227,490 p.)
poczytaj generalnie o setTimeout i setInterval, i w sumie generalnie musiałbyś też poczytać coś o asynchroniczności w różnych aspektach jeśli chcesz się bawić w JS.

Podobne pytania

0 głosów
1 odpowiedź 143 wizyt
0 głosów
1 odpowiedź 115 wizyt
pytanie zadane 19 października 2022 w HTML i CSS przez zbiku25 Gaduła (3,000 p.)

93,017 zapytań

141,984 odpowiedzi

321,273 komentarzy

62,362 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...