Показать сообщение отдельно
  #1 (permalink)  
Старый 20.02.2021, 10:56
Интересующийся
Отправить личное сообщение для Storm03 Посмотреть профиль Найти все сообщения от Storm03
 
Регистрация: 20.02.2021
Сообщений: 12

Не пойму результат classlist.contains
На странице сайта открывается блок с описанием. Решил добавить плавности и сделал проверку, открыт блок или нет.
Проблема в том, что когда блок открыт, понятно, что у него добавлен класс "_open". Но js (первый алерт) выдаёт, будто у него класс "_close". Хотя второй показывает, что "_open". В html-е задан класс "_close".
function description_show() {
	oll_frames_close();
	var t = 0;
	let c = document.getElementById("page_description"); alert(c.classList);
	if (c.classList.contains("page_description_open")) {
		c.classList.remove("page_description_open"), c.classList.add("page_description_close");
		t = 500;
	}
	let e = document.getElementById("description_body");
	var a = this.getAttribute("data-id");
	var d = new XMLHttpRequest;
	a = "id=" + a;
	d.open("POST", "service/xxxxxxxx.php", !0);
	d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	d.addEventListener("readystatechange", function () {
		if (4 === d.readyState && 200 === d.status) {
			setTimeout(function () {
				e.innerHTML = d.responseText;
				c.classList.remove("page_description_close"), c.classList.add("page_description_open"); alert(c.classList);
			}, t);
		}
	});
	d.send(a);
}
Ответить с цитированием