Закрытие дропдауна по клику на кнопку и соседний элемент


Веб-разработчики часто сталкиваются с задачей реализации дропдауна на своих сайтах. Одной из неприятностей, которую может вызывать дропдаун, является его нежелательное сохранение в раскрытом состоянии при клике на кнопку или соседний элемент. Однако существует простое решение этой проблемы, которое мы рассмотрим в данной статье.

Для закрытия дропдауна при клике на кнопку или соседний элемент нам понадобится использовать JavaScript. В примере кода мы создадим функцию, которая будет прослушивать события клика на кнопке и соседнем элементе и закрывать дропдаун, если они произошли. Это достигается путем добавления класса «hidden» к элементу дропдауна.

Все, что вам нужно сделать, чтобы использовать эту функцию на своем сайте, — это включить ее в свой JavaScript-файл и привязать к соответствующим элементам. Помимо кода, мы также предоставим инструкцию по использованию функции и некоторые дополнительные советы для ее настройки и применения к вашему сайту.

Реализация закрытия дропдауна

Для реализации закрытия дропдауна необходимо использовать JavaScript код. Ниже приведен пример кода, который выполняет эту функцию:

const dropdownButton = document.querySelector('.dropdown-button');const dropdownList = document.querySelector('.dropdown-list');dropdownButton.addEventListener('click', () => {dropdownList.classList.toggle('closed');});document.addEventListener('click', (event) => {const target = event.target;if (!dropdownList.contains(target) && !dropdownButton.contains(target)) {dropdownList.classList.add('closed');}});

В данном примере сначала мы находим кнопку дропдауна и список дропдауна с помощью метода querySelector. Затем мы добавляем слушатель события click на кнопку, который будет вызывать функцию для открытия и закрытия списка. В этой функции мы используем метод classList.toggle для добавления или удаления класса closed к списку.

Дальше мы добавляем слушатель события click на документ. В этом слушателе мы проверяем, является ли целью события элемент, не относящийся к списку или кнопке дропдауна. Если это так, то мы добавляем класс closed к списку для закрытия дропдауна.

Таким образом, используя данный код, мы можем реализовать закрытие дропдауна при клике на кнопку или соседний элемент.

Пример кода закрытия дропдауна

Для реализации закрытия дропдауна при клике на кнопку и соседний элемент, можно использовать JavaScript и добавить соответствующие обработчики событий.

В HTML разметке, для кнопки дропдауна и соседнего элемента, необходимо добавить уникальные идентификаторы, чтобы можно было обращаться к ним через JavaScript.

Пример HTML разметки:

<button id="dropdown-button">Открыть дропдаун</button><div id="dropdown-content"><ul><li>Пункт 1</li><li>Пункт 2</li><li>Пункт 3</li></ul></div>

В JavaScript можно использовать методы для обработки кликов на элементах.

Пример JavaScript кода:

const dropdownButton = document.getElementById('dropdown-button');const dropdownContent = document.getElementById('dropdown-content');dropdownButton.addEventListener('click', function() {if (dropdownContent.style.display === 'none') {dropdownContent.style.display = 'block';} else {dropdownContent.style.display = 'none';}});dropdownContent.addEventListener('click', function(event) {event.stopPropagation();});document.addEventListener('click', function() {dropdownContent.style.display = 'none';});

В данном примере, при клике на кнопку «Открыть дропдаун», проверяется текущее состояние дропдауна, и если он скрыт, то он отображается, и наоборот. При клике на сам дропдаун, событие клика не всплывает, чтобы избежать нежелательного закрытия. А при клике в любом другом месте документа, дропдаун будет закрываться.

Таким образом, данный код позволит реализовать закрытие дропдауна при клике на кнопку и соседний элемент.

Инструкция по закрытию дропдауна

Чтобы закрыть дропдаун при клике на кнопку или соседний элемент, нужно применить следующие шаги:

Шаг 1Присвойте дропдауну уникальный идентификатор с помощью атрибута id,
например:

<div id=»dropdown»>

<button>Кнопка</button>

<div class=»content»>Содержимое dropdown’а</div>

</div>

Шаг 2Добавьте обработчик события на кнопку и соседний элемент, который будет закрывать дропдаун, например:

<script>

<button onclick=»closeDropdown()»>Кнопка</button>

<div onclick=»closeDropdown()» class=»neighbour»>Соседний элемент</div>

<script>

function closeDropdown() {

var dropdown = document.getElementById(«dropdown»);

dropdown.style.display = «none»;

}

</script>

Шаг 3Добавьте стили для отображения и скрытия дропдауна, например:

<style>

.content {

display: none;

}

.content.show {

display: block;

}

</style>

Шаг 4Измените скрипт, чтобы при клике на кнопку или соседний элемент
добавлялся класс «show» к элементу с классом «content», например:

<script>

function closeDropdown() {

var dropdown = document.getElementById(«dropdown»);

var content = dropdown.getElementsByClassName(«content»)[0];

content.classList.toggle(«show»);

}

</script>

Добавить комментарий

Вам также может понравиться