Ответ
Что хотят услышать интервьюеры
Интервьюеры ожидают, что кандидат продемонстрирует понимание модели событий в браузере, включая порядок срабатывания событий и механизм всплытия и захвата. Они ищут знания о различиях между различными типами событий, таких как click, mousedown, mouseup, и о том, как эти события могут взаимодействовать друг с другом через обработчики. Интервьюеры также хотят увидеть, что кандидат знает о предотвращении стандартного поведения событий.
Порядок срабатывания событий:
- Когда кнопка нажата, срабатывают следующие события в этом порядке:
mousedown: Событие срабатывает, когда кнопка мыши нажата.mouseup: Событие срабатывает, когда кнопка мыши отпущена.click: Событие срабатывает, когда кнопка мыши нажата и отпущена на одной и той же цели.
- Когда кнопка нажата, срабатывают следующие события в этом порядке:
Механизм всплытия и захвата:
- Захват (Capture): Событие начинается от корневого элемента и проходит вниз к целевому элементу.
- Всплытие (Bubble): Событие сначала срабатывает на целевом элементе, а затем поднимается вверх к родительским элементам.
- По умолчанию, события
click,mouseup,mousedownсрабатывают в фазе всплытия.
Пример кода:
document.getElementById("myButton").addEventListener("mousedown", function() {
console.log("Mouse down on button");
});
document.getElementById("myButton").addEventListener("mouseup", function() {
console.log("Mouse up on button");
});
document.getElementById("myButton").addEventListener("click", function() {
console.log("Button clicked");
});- Предотвращение стандартного поведения:
- Если нужно предотвратить стандартное поведение (например, переход по ссылке), можно использовать
event.preventDefault()в обработчике события.
- Если нужно предотвратить стандартное поведение (например, переход по ссылке), можно использовать
Что могут спросить дальше
- Показать пример кода для других событий
- Объяснить разницу между событиями mouse и keyboard
- Перейти к следующему шагу обработки событий
- Обсудить оптимизацию производительности при обработке событий