Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   изменение значения элемента display (https://javascript.ru/forum/misc/14126-izmenenie-znacheniya-ehlementa-display.html)

Vulkan 31.12.2010 14:14

<script>
function my_f(objName, a) {
var object = document.getElementById(objName);
object.style.display = (object.style.display == 'none') ? '' : 'none'
a.innerHTML = (object.style.display == 'none') ? '(+)' : '(-)'
}
</script>

<a href="javascript:void(0)" onclick="my_f('textid', this)">(-)</a>
<div id="textid" style="display:block;">
скрытый текст
</div>

(Sandr) 31.12.2010 14:19

спасибо ещё раз)

talliar 10.03.2012 15:43

Здравствуйте все!

Воспользовался этим кодом:

<script>
function my_f(objName, a) {
var object = document.getElementById(objName);
object.style.display = (object.style.display == 'none') ? '' : 'none'
a.innerHTML = (object.style.display == 'none') ? '(+)' : '(-)'
}
</script>

<a href="javascript:void(0)" onclick="my_f('textid', this)">(-)</a>
<div id="textid" style="display:block;">
скрытый текст
</div>


Все отлично работает, но не подскажите как его модифицировать следующим образом: будет к примеру несколько ссылок и несколько скрытых дивов. По нажатию на одну ссылку див меняет стиль на видимый, а ссылка меняет стиль (цвет допустим). При нажатии на другую ссылку прошлый див сворачивается и открывается тот по которому кликнули (опять жеж со сменой цвета ссылки). Много всего перелопатил, но хочется очень легкого и изящного решения, а все что предлагает слишком громоздко и много лишнего. Я к яваскрипту редко обращаюсь (чуть чуть другая специфика) но вот пришлось) Заранее спасибо за помощь!

(Sandr) 10.03.2012 20:45

talliar,
возможно вам поможет это http://jqueryui.com/demos/accordion/

talliar 13.03.2012 10:41

Спасибо! Как раз то, что нужно!))

hdma 08.02.2017 10:28

Привет. Есть задача воспроизвести поведение опции «Показать полностью…» со страниц ВКонтакта (когда большие комментарии сжимаются). С помощью одного из кодов, представленных выше это удалось — только остаётся перенос строки. Дано ли избавиться от переноса?

<script>
function my_f(objName, a) {
var object = document.getElementById(objName);
object.style.display = (object.style.display == 'block') ? '' : 'block'
a.innerHTML = (object.style.display == 'block') ? '' : '(-)'
}
</script>
</HEAD>
<BODY>
<p>Хозяева жизни ведут борьбу на двух направлениях. Первый фронт — битва за изменение сюжета. Второй фронт — борьба за то, чтобы выбросить из истории (сюжета) как можно большее число людей и народов: если в сюжет входит слишком много «посторонних», лидирующая роль драматурга и режиссера, которую узурпировали элиты, ставится под вопрос. Простой пример. В 1918 году в России белое движение боролось за то, чтобы командарм Сорокин, батька Махно, бывший бандит Котовский <a onclick="my_f('textid', this)">Показать полностью…</a><span id="textid" style="display:none;">остались внеисторическими фигурами вместе со многими миллионами других серых анонимов. Соответственно, красная борьба велась за то, чтобы жизнь людей, чье существование в истории значило не больше, чем жизнь ежа в лесу, превратилась в легендарное и поучительное повествование в учебниках истории для будущих поколений. Тогда победили красные. Сейчас белые изменили сюжет и осуществляют реванш: стирают легендарное повествование, выбрасывая его героев из истории. 
Элиты всеми силами стремятся вернуть себе роль драматурга, узурпировать ее и избавиться от лишних сюжетов.</span></p>


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