Вывод функции Javascript в отдельном посте с помощью тега <div>
Здравствуйте уважаемые форумчане!
Нужна ваша помощь. В блоге на вордпресс хочу сделать спойлер с помощью: <!-- код спойлера --> <script language="javascript"> function toggle() { var ele = document.getElementById("toggleText"); var text = document.getElementById("displayText"); if(ele.style.display == "block") { ele.style.display = "none"; text.innerHTML = "Показать решение"; } else { ele.style.display = "block"; text.innerHTML = "Закрыть"; } } </script> В статье: <a href="javascript:toggle();" id="displayText">Показать решение</a> <div id="toggleText" style="display: none;">Сам текст в спойлере... </div> Все работает при добавлении 1 спойлера в записи, мне нужно сделать 10. Подскажите пожалуйста КАК? Спасибо. |
Цитата:
В теме скорей всего подключена либа jQuery, с ней код поудобней писать:
<a class="displayText">Показать решение</a>
<div class="toggleText" style="display:none">Сам текст в спойлере... </div>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$('.displayText').click(function() { toggle(this) });
function toggle(displayText) {
displayText = $(displayText);
var toggleText = displayText.next('.toggleText');
if (toggleText.is(':visible')) {
toggleText.hide();
displayText.html('Показать решение');
} else {
toggleText.show();
displayText.html('Закрыть');
}
}
</script>
jQuery конечно второй экземпляр подключать не нужно. Если эта либа не используется - можно без особых проблем переписать на чистом js. |
danik.js, спасибо за ответ, но может Вы знаете как расшифровать:
Цитата:
|
Цитата:
|
+1 . Иду пробовать.
|
Демонстрация возможности
http://learn.javascript.ru/play/6uFHuc |
Что не так?
<!-- код спойллера --> <script language="javascript"> function toggle() { var ele = document.getElementById("toggleText"); var text = document.getElementById("displayText"); if(ele.style.display == "block") { ele.style.display = "none"; text.innerHTML = "Показать решение"; } else { ele.style.display = "block"; text.innerHTML = "Закрыть"; } } </script> 1) <a href="javascript:toggle(1);" id="displayText1">Показать решение</a> <div id="toggleText" style="display: none;">Сам текст в спойлере... </div> 2) <a href="javascript:toggle(2);" id="displayText2">Показать решение</a> <div id="toggleText" style="display: none;">Сам текст в спойлере... </div> Цитата:
|
Poznakomlus, спасибо за ответ.
А как сделать "Посмотреть ответ", чтоб отображалось ссылкой. И куда вставлять <style> .spoiler>input { position: absolute; top: -9999px; left: -9999px; } .spoiler>label { cursor: pointer; } .spoiler>label:before { content:"Показать решение"; } .spoiler>input:checked ~ label:before { content:"Закрыть"; } .spoiler>input:checked ~ .sp-content { display: block; } .spoiler>.sp-content { display: none; border: 1px solid #d5d5d5; background-color: #f5f5f5; padding: 5px; } </style> И этот код <div class="spoiler"> <input type="checkbox" id="sp1" /> <label for="sp1"></label> <div class="sp-content">Здесь будет наш текст...</div> </div> <div class="spoiler"> <input type="checkbox" id="sp2" /> <label for="sp2"></label> <div class="sp-content">Здесь будет наш текст...</div> </div> Спасибо. |
Цитата:
|
http://learn.javascript.ru/play/No5aAb
смотрите решение на js второе
<head>
<style>
.link {
border:none;
background-color: transparent;
text-decoration: underline;
color: #476C8E;
display: block;
outline: none;
cursor: pointer;
}
.sp-text {
display: none;
border: 1px solid #d5d5d5;
background-color: #f5f5f5;
padding: 5px;
}
</style>
</head>
<body>
<input type="button" onclick="spoiler(this)" value="Показать решение" class="link sp1">
<div class="sp-text sp1">Ваш текст ...</div>
<input type="button" onclick="spoiler(this)" value="Показать решение" class="link sp2">
<div class="sp-text sp2">Ваш текст ...</div>
<script>
var spoiler = function (el) {
var divCls = "div.sp-text." + el.className.split("link ")[1],
sptext = document.querySelector(divCls);
if (sptext.style.display == "") {
sptext.style.display = "block";
el.value = "Закрыть";
} else {
sptext.style.display = "";
el.value = "Показать решение";
}
};
</script>
</body>
|
| Часовой пояс GMT +3, время: 00:57. |