<div onclick="alert(1)"></div>
- toto není úplně šťastný způsob, nemůžu přidat více funkcí, které budou na tomto eventu
- je lepší to přidávat ve skriptu
div.addEventListener('click', funkce)
div.removeEventListener('click', funkce)
- ta funkce nemůže být anonymní, abych ji mohl smazat (a tedy porovnávat), tak musí mít stejnou referenci (viz porovnávání objektů (=funkcí)) v JS
.dispatchEvent()
- lze “emitovat” nějaký Event
div.dispatchEvent(new Event('click'));
.addEventListener má ještě 3. parametr → bool true/false
- podle toho, jestli chci daný Event spouštět v Capturing fázi (která jde o parenta k childu a spouští se jako první) nebo v Bubbling fázi (od childa k parentovi)
- viz: https://javascript.info/bubbling-and-capturing
e.stopPropagation()
- zastaví propagaci eventu v daném směru
div.addEventListener('click', (event) => {
console.log(event.target); // nejvic inner child, na kterem byl event spusteny
console.log(event.currentTarget);
})
e.preventDefault()