| # | title | topic | type | difficulty |
|---|---|---|---|---|
| 1 | target vs currentTarget | DOM Events | Multiple choice | Easy |
| 2 | The once option | DOM Events | Multiple choice | Easy |
| 3 | Smuggling data in CustomEvent | DOM Events | Multiple choice | Easy |
| 4 | Removing a listener you can't name | DOM Events | Multiple choice | Easy |
| 5 | Adding the same listener twice |
| DOM Events |
| Multiple choice |
| Medium |
| 6 | stopPropagation's blind spot | DOM Events | Multiple choice | Medium |
| 7 | dispatchEvent doesn't wait its turn | DOM Events | Drag & drop | Medium |
| 8 | Unsubscribing with AbortController | DOM Events | Multiple choice | Medium |
| 9 | mouseenter vs mouseover | DOM Events | Multiple choice | Medium |
| 10 | The lie detector on events | DOM Events | Multiple choice | Medium |
| 11 | form.submit() skips the party | DOM Events | Multiple choice | Medium |
| 12 | The event that refuses to bubble | DOM Events | Multiple choice | Hard |
| 13 | The removal that silently fails | DOM Events | Multiple choice | Hard |
| 14 | The checkbox that un-checks itself | DOM Events | Multiple choice | Hard |
| 15 | passive listeners can't say no | DOM Events | Multiple choice | Hard |
| 16 | Editing the guest list mid-party | DOM Events | Multiple choice | Hard |
| 17 | Drag the propagation into order | DOM Events | Drag & drop | Medium |
| 18 | Event machine: which phase fires it? | DOM Events | Runtime machine | Medium |
| 19 | Build the DOM's listener brain | DOM Events | Coding | Hard |