
В этом тренажере вы попрактикуетесь в предотвращении стандартного поведения браузера при возникновении событий. Стандартное поведение, например, переход по ссылке при клике или отправка формы, иногда требуется отменить, чтобы реализовать собственную логику обработки. В заданиях вам будет предоставлен HTML-код и JavaScript-код с пропусками. Ваша задача - заполнить пропуски, чтобы предотвратить действие браузера по умолчанию и, возможно, добавить свою обработку события. Часть задач условные, так как действия отправки формы или перехода по ссылке запрещены общими правилами запуска скриптов.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Предотвращение перехода по ссылке
Дан HTML-код с ссылкой. При клике на ссылку происходит переход на другую страницу. Ваша задача - модифицировать JavaScript-код так, чтобы при клике на ссылку переход по указанному в `href` адресу не происходил. Вместо перехода измените текст внутри самой ссылки.
<a id="myLink" href="https://example.com">Нажми на меня</a>
const link = document.getElementById("myLink");
link.addEventListener("click", function(event) {
input__1.preventDefault();
input__2.textContent = "Переход отменен!";
});
Предотвращение отправки формы
Имеется форма с кнопкой отправки. При нажатии на кнопку "Отправить" происходит стандартная отправка формы с перезагрузкой страницы. Необходимо предотвратить отправку формы и вместо этого вывести текст в специальный `div` под формой.
<form id="myForm">
<input type="text" name="name" value="Имя">
<button type="submit">Отправить</button>
</form>
<div id="output"></div>
const form = document.getElementById("myForm");
form.addEventListener("submit", function(input__1) {
input__1.preventDefault();
const outputDiv = document.getElementById(input__2);
outputDiv.textContent = "Форма не отправлена!";
});
Предотвращение всплытия контекстного меню
При правом клике мыши на элементе `div` появляется стандартное контекстное меню браузера. Задача - предотвратить появление этого меню при клике правой кнопкой мыши на указанном элементе.
Предотвращение выделения текста
При двойном клике на тексте внутри абзаца он выделяется. Необходимо предотвратить это стандартное поведение браузера.
<p id="myParagraph">Двойной клик по этому тексту</p>
const paragraph = document.getElementById("myParagraph");
paragraph.addEventListener(input__1, function(event) {
event.preventDefault();
});
Предотвращение действия и изменение стиля
При клике на кнопку должно меняться ее фоновый цвет, но стандартное поведение (если оно есть) должно быть предотвращено.
<button id="myButton">Нажми меня</button>
const button = document.getElementById("myButton");
button.addEventListener("click", function(event) {
event.preventDefault();
this.input__1.backgroundColor = input__2;
});
Предотвращение действия для нескольких элементов
Даны несколько ссылок. Нужно предотвратить переход по любой из них при клике.
<a href="#link1">Ссылка 1</a>
<a href="#link2">Ссылка 2</a>
<a href="#link3">Ссылка 3</a>
const links = document.querySelectorAll("a");
links.forEach(function(link) {
link.addEventListener("click", function(event) {
input__1.preventDefault();
console.log("Переход по ссылке " + link.href + " отменен.");
});
});
Предотвращение действия с данными из атрибута
При клике на ссылку нужно предотвратить переход и вывести в консоль значение атрибута `data-info` этой ссылки.
<a id="infoLink" href="https://example.com" data-info="Важная информация">Ссылка с данными</a>
const infoLink = document.getElementById("infoLink");
infoLink.addEventListener("click", function(event) {
event.preventDefault();
console.log(input__1.dataset.input__2);
});
Предотвращение и добавление класса
При клике на элемент списка (li) нужно предотвратить стандартное действие и добавить этому элементу класс "highlight".
.highlight {
background-color: yellow;
}
<ul>
<li id="item1">Элемент 1</li>
<li id="item2">Элемент 2</li>
<li id="item3">Элемент 3</li>
</ul>
const listItems = document.querySelectorAll("li");
listItems.forEach(function(item) {
item.addEventListener("click", function(event) {
event.preventDefault();
input__1.classList.add(input__2);
});
});
Предотвращение действия checkbox
Нужно предотвратить изменение состояния чекбокса при клике на него.
<input type="checkbox" id="myCheckbox">
const checkbox = document.getElementById("myCheckbox");
checkbox.addEventListener("click", function(input__1) {
input__1.preventDefault();
});
Предотвращение действия и условная логика
При клике на кнопку, если у неё есть класс 'active', нужно предотвратить стандартное действие. Если класса нет, ничего делать не нужно.
.active {
background-color: lightblue;
}
<button id="conditionalButton" class="active">Кнопка</button>
const conditionalButton = document.getElementById("conditionalButton");
conditionalButton.addEventListener("click", function(event) {
if (this.classList.contains(input__1)) {
event.preventDefault();
console.log('Действие предотвращено, так как есть класс active');
}
});
Предотвращение действия и работа с изображениями
При клике на изображение нужно предотвратить стандартное действие (открытие изображения в новой вкладке) и изменить `src` изображения на другое.
<img id="myImage" src="https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike2-300x300.png" alt="Картинка 1">
const image = document.getElementById("myImage");
image.addEventListener("click", function(event) {
event.preventDefault();
this.src = input__1;
});
Предотвращение действия по условию (четность)
Дан список элементов. При клике на элемент с четным порядковым номером (начиная с 1) нужно предотвратить стандартное действие.
<ul>
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
<li>Элемент 4</li>
</ul>
const items = document.querySelectorAll("li");
items.forEach(function(item, index) {
item.addEventListener("click", function(event) {
if ((index + 1) input__1 2 === input__2) {
event.preventDefault();
console.log("Действие предотвращено для элемента с индексом " + index);
}
});
});
Комплексное предотвращение и манипуляция DOM
При клике на ссылку нужно предотвратить переход, удалить родительский элемент этой ссылки (li) и изменить текст в соседнем элементе списка.
<ul>
<li>Элемент 1</li>
<li><a href="#">Ссылка</a></li>
<li>Элемент 3</li>
</ul>
const link = document.querySelector("a");
link.addEventListener("click", function(event) {
event.preventDefault();
input__1.parentElement.remove();
if (this.parentElement.input__2) {
this.parentElement.previousElementSibling.textContent = "Текст изменен!";
}
});