Week 14: DOM manipulation, manipulating elements & click events

1 / 44
volgende
Slide 1: Tekstslide
JavaScriptMBOStudiejaar 2

In deze les zitten 44 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Slide 1 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

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 - Tekstslide

Deze slide heeft geen instructies

Slide 4 - Link

Deze slide heeft geen instructies

Voorbereiding
Sla je mapje op in OneDrive.

Open in je IDE de folder.

Bekijk de verschillende bestanden.

Slide 5 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

Slide 7 - Link

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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

Gelukkig is daar een oplossing voor.

Slide 9 - Tekstslide

Deze slide heeft geen instructies

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

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Slide 11 - Link

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

Selecteren van elementen in JS

Slide 19 - Tekstslide

Deze slide heeft geen instructies

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

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Wat doet de textContent method?

Slide 21 - Open vraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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

Slide 24 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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

Slide 28 - Poll

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

Slide 32 - Link

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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

Bekijk het plaatje hiernaast.

Slide 34 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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

Slide 37 - Quizvraag

Deze slide heeft geen instructies

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

Slide 38 - Open vraag

Deze slide heeft geen instructies

Events in JS

Slide 39 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

Events in JS

Slide 41 - Tekstslide

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 - Tekstslide

Deze slide heeft geen instructies

Denk je dat je de leerdoelen hebt behaald?
Ja
Nee

Slide 43 - Poll

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies