Показать сообщение отдельно
  #5 (permalink)  
Старый 05.06.2019, 21:35
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от ArtiOnMoon
И столкнулся с следующей проблемой. Изредка кнопка не работает. Наблюдается корреляция с количеством кнопок. Примерно это выглядит вот так
Я заметил, что у вас (в видео подглядел) мой скрипт обернут в DOMContentLoaded, это не нужно. Также проследите, чтобы только один раз этот скрипт был вставлен на страницу. (Если у вас генерируется шаблон на сервере, то вы могли это упустить) Элементов может быть сколько угодно, но скрипт должен быть только один. Чтобы не путаться вынесите этот скрипт в <head>

Скрипт должен быть только один на странице! (лучше в <head>)
<script>

addEventListener("click", function(event) {
	if (!event.target.matches(".bab")) return;

	const box = event.target.nextElementSibling;
	box.hidden ^= true;
});

</script>


Элементов, которыми он будет управлять может быть много (идут где-то в <body>)
<button class="bab">Кнопка</button>
<div class="box" hidden> Содержимое </div>

<button class="bab">Кнопка</button>
<div class="box" hidden> Содержимое 2</div>


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

Последний раз редактировалось Malleys, 05.06.2019 в 21:51.
Ответить с цитированием