vef1-2025

Vefforritun 1 kennd haustið 2025

View the Project on GitHub vefforritun/vef1-2025

Fyrirlestur – Atburðir

Vefforritun 1 — TÖL107G

Ólafur Sverrir Kjartansson, osk@hi.is


Forrit sem bregðast við atburðum



Atburðir – events


window.addEventListener('click', () => {
  console.log('You knocked?');
});

Taka þátt í atburðum


Skrá meðhöndlun




<button>Click me</button>
const button =
  document.querySelector('button');
button.addEventListener('click', () => {
  console.log('Button clicked.');
});
button.addEventListener('click', () => {
  console.log('You knocked?');
});
// smellt á takka
// "Button clicked."
// "You knocked?"

<button>Click me</button>
const button =
  document.querySelector('button');

function once() {
  console.log('Þetta keyrir einu sinni.');
  button.removeEventListener('click', once);
}
button.addEventListener('click', once);

Dæmi


Upplýsingar um atburð


Atburðir fljóta upp



Sjálfgefin hegðun


Lyklaborð



Dæmi um upplýsingahlut


Aðrir atburðir



Hvenær keyrir JavaScript?



document.addEventListener('readystatechange', (event) => {
  // okkur er sama um eventinn sjálfan
  console.log(document.readyState);
});

Dæmi um skrun

Dæmi um DOMLoaded


Debouncing


const textarea =
  document.querySelector('textarea');

let timeout;

textarea.addEventListener('keydown', () => {
  clearTimeout(timeout);
  timeout = setTimeout(() => {
    console.log('You stopped typing.');
  }, 500);
});

setTimeout og setInterval



Dæmi um debounce

Dæmi um setTimeout og setInterval


DOM og form


form.addEventListener('submit', (e) => {
  e.preventDefault();
  const data = new FormData(form);
});

input og textarea


checkbox, radio og select



Dæmi