Я пытаюсь изменить атрибут "hidden" элемента true на javascript после таймаута 1000 миллисекунд, но он не меняет атрибут. Да, тайм-аут работает нормально. Я тестировал это, все функции верны! Только последняя часть, в которой с помощью функции setAttribute() не работает.
HTML:
<div id="gamePanel" hidden="true">
<div id="bb">
<div id="map">
</div>
</div>
<p id="status"> Welcome Back! </p>
<input type="button" id="changeBio" value="Change Map" />
<input type="button" id="saveGame" value="Save Game" />
<div id="statusBar"> Status </div>
</div>
Javascript:
var panel = document.querySelector("#gamePanel");
panel.setAttribute("hidden","false");
использование
panel.removeAttribute("hidden");
Поскольку hidden
атрибут является логическим атрибутом (спецификация определяет его таким образом),
Наличие логического атрибута для элемента представляет истинное значение, а отсутствие атрибута представляет ложное значение.
Тогда он не имеет true
и false
значений. Он может присутствовать (т. hidden
или hidden="hidden"
), или нет.
Или, что еще лучше, вы можете изменить hidden
свойство:
panel.hidden = false;
Лично я использовал бы это вместо этого:
var panel = document.getElementById("gamePanel");
panel.style.display = 'block';
или скрыть это:
panel.style.display = 'none';
hidden
атрибут является семантическим. display:none
является презентационным. Спецификации объясняет различия.