Week 14: DOM manipulation, manipulating elements & click events

1 / 44
suivant
Slide 1: Diapositive
JavaScriptMBOStudiejaar 2

Cette leçon contient 44 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 60 min

Éléments de cette leçon

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Doel van deze les
  • Aan het einde van de les heb jij jouw JS-code gekoppeld aan webpagina in HTML en CSS.
  • Aan het einde van de les laat jij jouw pagina reageren op clicks door click events af te handelen.

Slide 2 - Diapositive

Feedback lesdoel: Maartje: De student kan aan het einde van de les een web pagina maken met een titel, plaatje en formulier middels het koppelen html en css. Het knopje maken wij bruin.

Ainhoa: De lesdoel is te lang.
Wat heb je nodig?
Voor deze periode heb je de kennis nodig van JS Basics en Essentials.

Meer hierover in de studentenhandleiding.

Slide 3 - Diapositive

Cet élément n'a pas d'instructions

Slide 4 - Lien

Cet élément n'a pas d'instructions

Voorbereiding
Sla je mapje op in OneDrive.

Open in je IDE de folder.

Bekijk de verschillende bestanden.

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

Voorbereiding
Allereerst hebben wij de prettier bestand. Hierin beschrijf je de regels voor jouw prettier plugin.

De plugin kan je in de volgende dia krijgen.

Slide 6 - Diapositive

Cet élément n'a pas d'instructions

Slide 7 - Lien

Cet élément n'a pas d'instructions

Voorbereiding
Neem ook even de tijd om te kijken naar de html en css files en kijk of je begrijpt wat daar in staat.

Slide 8 - Diapositive

Cet élément n'a pas d'instructions

Voorbereiding nodeJS
Geen enkele professionele developer herlaad zijn website zo vaak zoals wij dat hebben gedaan.

Gelukkig is daar een oplossing voor.

Slide 9 - Diapositive

Cet élément n'a pas d'instructions

Voorbereiding nodeJS
Wij moeten node.js installeren. Ga naar de volgende dia om live server te installeren.

Slide 10 - Diapositive

Cet élément n'a pas d'instructions

Slide 11 - Lien

Cet élément n'a pas d'instructions

Voorbereiding nodeJS
node.js is nu een programma in de terminal. Je kan deze commando's geven.

Schrijf nu het volgende in de terminal van vs-code:
node -v

Nu krijg je de nodejs versienummer te zien.

Slide 12 - Diapositive

Cet élément n'a pas d'instructions

Voorbereiding nodeJS
Schrijf nu in de terminal:
Windows:
 npm install live-server -g
Mac/Linux (wachtwoord vereist):
sudo npm install live-server -g

npm staat voor node package manager. De -g staat voor global en maakt live server toegankelijk voor je hele computer.

Slide 13 - Diapositive

Cet élément n'a pas d'instructions

Voorbereiding nodeJS
Schrijf nu in de terminal:
live-server

Live server opent automatisch de folder waaruit jij de live-server commando hebt gegeven. Er wordt dan gezocht naar de index.html en deze voert hij uit. Het betekent dus dat je naar de juiste folder moet navigeren in de terminal zodat de juiste index geopend wordt.

Slide 14 - Diapositive

Cet élément n'a pas d'instructions

Wat valt je nu op aan de HTML code? 🤔
A
Dat alles in simpele HTML staat
B
Dat de tekst in de HTML pagina selecteerbaar is
C
Dat ieder html element netjes een class name heeft
D
Dat na zo'n jaar Taif nog steeds beter les geeft dan Jesse

Slide 15 - Quiz

Cet élément n'a pas d'instructions

Wat is het voordeel dat alle html elementen een class hebben? 😏
A
Maak de code makkelijk te lezen
B
Jesse en Taif hebben het verteld maar ik ben het vergeten
C
Is kleurrijker in de code.
D
Het maakt het selecteren van de HTML elementen makkelijker.

Slide 16 - Quiz

Cet élément n'a pas d'instructions

HTML
Komt HTML en CSS jou nog steeds niet bekend voor, bekijk dan de lessen van Jesse of the HTML crash course van de vorige periode nogmaals voor een refresh course.

Slide 17 - Diapositive

Cet élément n'a pas d'instructions

Selecteren van elementen in JS
Laten wij gezamenlijk kijken naar hoe je elementen in de HTML pagina kan selecteren in JS. Dit moet je doen om de elementen (zoals een stuk tekst) te veranderen. In web development noemen wij dit DOM manipulatie.

DOM (Document Object Model)

Slide 18 - Diapositive

Cet élément n'a pas d'instructions

Selecteren van elementen in JS

Slide 19 - Diapositive

Cet élément n'a pas d'instructions

Selecteren van elementen in JS
Bekijk de console van je browser. Wanneer je dit test, bekijk eens wat de 'textContent' method doet.

Slide 20 - Diapositive

Cet élément n'a pas d'instructions

Wat doet de textContent method?

Slide 21 - Question ouverte

Cet élément n'a pas d'instructions

Manipuleren van elementen in JS
Verander het message element value naar '🎉 Correct Number!'.

Als je het nu veranderd dan zie je meteen het verschil op jouw website vanwege de live-server van node.js.

Slide 22 - Diapositive

Cet élément n'a pas d'instructions

Manipuleren van elementen in JS
Verander number naar '13'.
Verander score naar '10'.

Schrijf in het invoerveld '23' via JS met de value method van de querySelector.

Slide 23 - Diapositive

Cet élément n'a pas d'instructions

Manipuleren van elementen in JS
Wordt het systeem nu getriggerd om het getal na te kijken?

Slide 24 - Diapositive

Cet élément n'a pas d'instructions

Click events in JS
Om te simuleren dat er op een knop wordt geklikt, moet je een click event afhandelen. Laten wij daarnaar kijken.

Slide 25 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
Op een toetsenbord drukken, muis klikken etc. noemen wij events. Om naar deze events te luisteren heb je wat programmeurs een event listener nodig.

Laten wij eerst beginnen met de huidige code die je hebt geschreven eerst te commentariseren.

Slide 26 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
Als je goed zoekt naar de knop gelabeld 'Check!', dan zie je dat de class bestaat uit twee namen. 'btn' en 'check'.

Slide 27 - Diapositive

Cet élément n'a pas d'instructions

Welke van de twee woorden ('bnt' of 'check'), is verstandig om te selecteren?
btn
check

Slide 28 - Sondage

bnt is algemeen want het wordt ook voor de knop bovenin gebruikt. check is daarom verstandiger.
Events in JS
Bekijk het volgende hoe een event listener toegevoegd moet worden -->

Slide 29 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
1 --> Dit is de method die aangeroepen moet worden om een event listener aan de knop toe te voegen. Er zijn meer soorten maar dit is een van de beste in JS. Deze method neemt een aantal arguments. Laten we dat in de volgende dia bekijken.

Slide 30 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
2 --> De eerste argument van deze event listener is om wat voor event gaat het? In dit geval willen wij een klik registreren dus schrijven wij 'click'.

Een complete lijst met wat voor events er zijn vind je in de volgende dia.

Slide 31 - Diapositive

Cet élément n'a pas d'instructions

Slide 32 - Lien

Cet élément n'a pas d'instructions

Events in JS
3 --> De tweede argument van deze event listener wil weten wat er dan moet gebeuren. Om dat te beschrijven maken wij een anonieme functie aan en willen wij dat het nummer wat in het invoerveld staat in de console wordt gelogd.

Slide 33 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
De functie is hetzelfde als wat wij in de vorige periode hebben behandeld.

Bekijk het plaatje hiernaast.

Slide 34 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
Je kan ook wat DOM manipulation doen door na een klik, ook de tekst van message te veranderen naar wat je eerder hebt geschreven.

Slide 35 - Diapositive

Cet élément n'a pas d'instructions

Events in JS
Het is ook mogelijk om te printen wat je loggen wat je zojuist hebt geschreven.

Probeer eens de type van 'guess' te achterhalen.

Slide 36 - Diapositive

Cet élément n'a pas d'instructions

Welk type heeft guess?
A
Boolean
B
String
C
Number
D
True

Slide 37 - Quiz

Cet élément n'a pas d'instructions

Dit is wel een probleem, hoe moet guess geconverteerd worden (type conversion) naar een Number?

Slide 38 - Question ouverte

Cet élément n'a pas d'instructions

Events in JS

Slide 39 - Diapositive

Cet élément n'a pas d'instructions

Game logic
Laten wij een start maken met de game logic. Hoewel dit de volgende les pas wordt uitgelegd, gaan wij nu een begin maken.

Slide 40 - Diapositive

Cet élément n'a pas d'instructions

Events in JS

Slide 41 - Diapositive

er wordt gebruik gemaakt van een falsey value en die negate het om een true te krijgen. Daarna veranderen wij de message.

Deze functie wordt gebruikt om te checken of er iets is geschreven in het invoerveld.
Wat waren de doelen?
  • Aan het einde van de les heb jij jouw JS-code gekoppeld aan webpagina in HTML en CSS.
  • Aan het einde van de les laat jij jouw pagina reageren op clicks door click events af te handelen.

Slide 42 - Diapositive

Cet élément n'a pas d'instructions

Denk je dat je de leerdoelen hebt behaald?
Ja
Nee

Slide 43 - Sondage

Cet élément n'a pas d'instructions

Wat gaan wij de volgende keer doen? Meerdere antwoorden mogelijk!
A
Game logic implementeren
B
Refactoring
C
DOM manipuleren
D
CSS stijlen manipuleren

Slide 44 - Quiz

Cet élément n'a pas d'instructions