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

jQuery Event wywołuje się po załadowaniu strony

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
226 wizyt
pytanie zadane 19 czerwca 2023 w JavaScript przez pj-1024 Użytkownik (690 p.)

WItam

Odwzorowuję grę za czasów PRLu - Mini Master Mind. Używam jQuery i gdy dodaję event do przycisku, to po załadowaniu strony event się sam wykonuje.

elmnt.on("click", add_color(elmnt, colors[i])); // Wycinek z kodu więc proszę o nie zwracanie uwagi na zmienne i własne funkcje.

Z góry dziękuję za odpowiedź.

1 odpowiedź

0 głosów
odpowiedź 19 czerwca 2023 przez Comandeer Guru (606,240 p.)
wybrane 19 czerwca 2023 przez pj-1024
 
Najlepsza

Bo do event listenera trzeba przekazać funkcję, Ty przekazujesz wynik wywołania funkcji. Jeśli po nazwie funkcji następuje (), to zawsze się wywoła od razu.

Najwygodniej byłoby tutaj użyć funkcji strzałkowej:

elmnt.on("click", () => {
	add_color(elmnt, colors[i]);
});

 

komentarz 19 czerwca 2023 przez infinityhost Użytkownik (780 p.)
Ja to się nie znam dobrze na tym a nie zadziałałoby elmnt.on("click", function(){add_color(elmnt, colors[i])});   ??? ewentualnie  elmnt.on("click",add_colors);?
komentarz 19 czerwca 2023 przez Comandeer Guru (606,240 p.)
To pierwsze jest praktycznie tożsame z funkcją strzałkową, więc można stosować albo to, albo to. Aczkolwiek dla mnie funkcje strzałkowe są wygodniejsze w takim zastosowaniu.

To drugie nie zadziała, bo nie przekazujemy poprawnych parametrów.
komentarz 19 czerwca 2023 przez infinityhost Użytkownik (780 p.)
AI mi marudzi że strzałkowe lepsze bo wywołują z właściwego zasięgu zmiennych. A ja wolę bindować. To drugie to tak strzeliłem bo tak się setTimeout wywołuje prawda? JS to chyba najpotężniejszy język obecnie.
komentarz 19 czerwca 2023 przez Comandeer Guru (606,240 p.)

AI mi marudzi że strzałkowe lepsze bo wywołują z właściwego zasięgu zmiennych. A ja wolę bindować.

Akurat w tym kodzie to nie ma znaczenia, bo kontekst this nie jest wgl używany.

 To drugie to tak strzeliłem bo tak się setTimeout wywołuje prawda?

setTimeout() się przekazuje funkcję – a więc działają wszystkie te same sposoby zapisu co tu. 

Podobne pytania

+4 głosów
3 odpowiedzi 548 wizyt
0 głosów
2 odpowiedzi 571 wizyt
pytanie zadane 22 maja 2020 w JavaScript przez rob Bywalec (2,440 p.)
0 głosów
1 odpowiedź 255 wizyt

93,176 zapytań

142,188 odpowiedzi

321,982 komentarzy

62,508 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1614p. - Łukasz Piwowar
  3. 1599p. - CC PL
  4. 1597p. - Łukasz Eckert
  5. 1572p. - Tomasz Bielak
  6. 1545p. - Michal Drewniak
  7. 1537p. - Łukasz Siedlecki
  8. 1531p. - rucin93
  9. 1509p. - rafalszastok
  10. 1506p. - Marcin Putra
  11. 1380p. - Adrian Wieprzkowicz
  12. 1356p. - ssynowiec
  13. 1341p. - Mikbac
  14. 1169p. - Grzegorz Aleksander Klementowski
  15. 1155p. - Piotr Aleksandrowicz
Szczegóły i pełne wyniki

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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...