Как добавить класс js?
Хочу что бы при нажатии на класс у другого класса убирался класс, но вся проблема в том, что в дереве html страницы класса ещё не существует, там контент аяксом загружается через несколько секунд и мой js код не работает.
То есть мой класс .open появляется позже, а скрипт о нем не знает как я понял, подскажите что нужно сделать, что бы скрипт о нем знал?
//Открыть попап $(document).ready(function() { $(".open").click(function() { $("#my-popup").removeClass("hide") }) }); |
//Открыть попап $(document).ready(function() { $(".open").click(function() { $("#my-popup").removeClass("hide") }) });
Дополнительно:
Ответы:
Используйте всплытие событий. Вешайте обработчик на постоянно присутствующий родительский элемент.
- https://learn.javascript.ru/event-delegation
Переводишь аякс-запрос на промисы, потом await <нечто, что добавляет .open> и потом уже вешаешь на него обработчик
Попробуй так:
let interval; let intervalChecker = function () { if ($(".open").length > 0) { $(".open").click(function() { $("#my-popup").removeClass("hide") }); clearInterval(interval); } } interval = setInterval(intervalChecker, 10); |
let interval; let intervalChecker = function () { if ($(".open").length > 0) { $(".open").click(function() { $("#my-popup").removeClass("hide") }); clearInterval(interval); } } interval = setInterval(intervalChecker, 10);
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для добавления класса с помощью JavaScript можно использовать метод classList.add(). Этот метод добавляет указанный класс к элементу без замены существующих классов.
Пример использования метода classList.add():
// Получаем элемент, к которому хотим добавить класс var element = document.getElementById("myElement"); // Добавляем класс element.classList.add("myClass");
В данном примере мы получаем элемент по его id ("myElement") и добавляем класс "myClass". Теперь у элемента будет два класса: его существующий класс и добавленный "myClass".
Если нужно добавить класс к нескольким элементам, можно воспользоваться циклом. Например, если у нас есть несколько элементов с классом "myElements", и мы хотим добавить к ним класс "newClass":
// Получаем все элементы с классом "myElements" var elements = document.getElementsByClassName("myElements"); // Добавляем класс "newClass" к каждому элементу for (var i = 0; i < elements.length; i++) { elements[i].classList.add("newClass"); }
Таким образом, используя метод classList.add(), можно легко добавить классы к элементам на странице с помощью JavaScript.