Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Спойлер работает «наоборот» (https://javascript.ru/forum/dom-window/71505-spojjler-rabotaet-naoborot.html)

Chile 23.11.2017 21:49

Спойлер работает «наоборот»
 
Здравствуйте, друзья!:)

У меня спойлер. Но, он работает не так, как бы хотелось. Т. е., нужно, чтобы он открывал и закрывал скрытый текст, а не закрывал, в общем, нужно, чтобы по умолчанию, спойлер был закрыт (скрыт). Ещё, желательно, чтобы display: none, по умолчанию, было указано в скрипте, а не в коде верстки или css-файле. Вот такой вот скриптик:

<script language="javascript">
function toggle(box) {
	var el = document.getElementById('box');
	el.style.display = (el.style.display != 'none' ? 'none' : '' );
	
	value = document.getElementById('content').value;
	if (value == "+ Таблица символов") {
		document.getElementById('content').value = "× Таблица символов";
	}
	else {
		document.getElementById('content').value = "+ Таблица символов";   
	}
}
</script>		
		
<input id="content" value="+ Таблица символов" type="button" onclick="toggle('box')" />
<div id="box">Хватит пылиться в офисе сраном, пойдём накатим по двести граммов!</div>


Как мне этот скрипт, так сказать, «инвертировать»? Помогите, люди добрыя!

рони 23.11.2017 23:49

Chile,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
<script language="javascript">
function toggle() {
  var el = document.getElementById('box');
  var block = el.style.display != 'none';
  document.getElementById('content').value = (block ? '× Таблица символов' : '+ Таблица символов' );
  el.style.display = (block ? 'none' : '' );
}
document.addEventListener('DOMContentLoaded', toggle, false);
</script>

</head>

<body>
<input id="content" value="+ Таблица символов" type="button" onclick="toggle()" />
<div id="box">Хватит пылиться в офисе сраном, пойдём накатим по двести граммов!</div>
</body>
</html>

Chile 24.11.2017 00:41

рони, громное вам спасибо!


Часовой пояс GMT +3, время: 02:56.