полностью готовый скрипт, но нехватает 1 нюанса

12
V
На сайте с 14.07.2009
Offline
42
1218

Кто разбирается прошу помочь, нашёл скрипт, всё работает но нужна маленькая доработка.

Скрипт тут http://jemand.ru/show-or-hide-block-of-clicking/

сделать нужно что бы при клике на блоке, скривались остальные открытые, автоматически.

или подскажите другой скрипт с нужными функциями.

кто поможет с удовольстивем скину 1-2 североамериканских рубля

C
На сайте с 04.02.2005
Offline
291
#1

т.е. нужно чтоб закрывалось несколько блоков уже открытых?

а признаки блоков есть?

V
На сайте с 14.07.2009
Offline
42
#2

одно что я изменил так это вместо дивлв у меня всё в спан заклёчено.

нужно: если уже открыт какой-то блок, и кликаешь на другой, то открытый скрывался.

в самом скрипте блок скривается только если повторно кликнуть на его родителя, если нет то сделующий открывается под/перед ним

P
На сайте с 25.05.2007
Offline
103
#3

Я так понимаю, вам нужно что-то типа такого:


<script language="javascript">
function ChangeInsert(place) {
var raz=document.getElementById('raz');
var dva=document.getElementById('dva');
var tri=document.getElementById('tri');

if(place == 'raz') {
raz.style.display = 'block';
dva.style.display = 'none';
tri.style.display = 'none';
}
else if(place == 'dva') {
raz.style.display = 'none';
dva.style.display = 'block';
tri.style.display = 'none';
}
else if(place == 'tri') {
raz.style.display = 'none';
dva.style.display = 'none';
tri.style.display = 'block';
}
else if(place == 'all') {
raz.style.display = 'block';
dva.style.display = 'block';
tri.style.display = 'block';
}
}
</script>
<div>
<a href="" onclick="ChangeInsert('raz'); return false;">Показать только "раз"</a>
<a href="" onclick="ChangeInsert('dva'); return false;">Показать только "два"</a>
<a href="" onclick="ChangeInsert('tri'); return false;">Показать только "три"</a>
<a href="" onclick="ChangeInsert('all'); return false;">Показать все блоки</a>
</div>

<div id="raz">раз</div>
<div id="dva">два</div>
<div id="tri">три</div>
coolakov.ru/tools (http://coolakov.ru/tools/): определение конкурентов (http://coolakov.ru/tools/most_promoted/), кластеризация запросов (http://coolakov.ru/tools/razbivka/) и т.д.
C
На сайте с 04.02.2005
Offline
291
#4

1. получить коллекцию элементов которые нужно скрыть/показать

2. Цикл по коллекции

2.а. скрыть/показать нужный элемент.

V
На сайте с 14.07.2009
Offline
42
#5
pimandr:
Я так понимаю, вам нужно что-то типа такого:

<script language="javascript">
function ChangeInsert(place) {
var raz=document.getElementById('raz');
var dva=document.getElementById('dva');
var tri=document.getElementById('tri');

if(place == 'raz') {
raz.style.display = 'block';
dva.style.display = 'none';
tri.style.display = 'none';
}
else if(place == 'dva') {
raz.style.display = 'none';
dva.style.display = 'block';
tri.style.display = 'none';
}
else if(place == 'tri') {
raz.style.display = 'none';
dva.style.display = 'none';
tri.style.display = 'block';
}
else if(place == 'all') {
raz.style.display = 'block';
dva.style.display = 'block';
tri.style.display = 'block';
}
}
</script>
<div>
<a href="" onclick="ChangeInsert('raz'); return false;">Показать только "раз"</a>
<a href="" onclick="ChangeInsert('dva'); return false;">Показать только "два"</a>
<a href="" onclick="ChangeInsert('tri'); return false;">Показать только "три"</a>
<a href="" onclick="ChangeInsert('all'); return false;">Показать все блоки</a>
</div>

<div id="raz">раз</div>
<div id="dva">два</div>
<div id="tri">три</div>

да, типа этого, только изначально ничего не должно плказывать только при клике на Показать только... таких блоков около10

vladimirok добавил 06.10.2010 в 13:40

Chukcha:
1. получить коллекцию элементов которые нужно скрыть/показать
2. Цикл по коллекции
2.а. скрыть/показать нужный элемент.

оно, но скривать должно открытый блок само, если открывается другой

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

ну так храните ID раскрытого блока в скрытом <input и потом считывать его.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
V
На сайте с 14.07.2009
Offline
42
#7
LEOnidUKG:
ну так храните ID раскрытого блока в скрытом <input и потом считывать его.

ух ты, а можно эти непонятные слова выразить в виде кода?

C
На сайте с 04.02.2005
Offline
291
#8

Зачем в input?

можно хранить и в переменной.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#9
Chukcha:
Зачем в input?
можно хранить и в переменной.

Можно, просто привычка)))

C
На сайте с 04.02.2005
Offline
291
#10


var fShowHide='';
function show(ele) {
if (fShowHide !='') {
document.getElementById(fShowhide).style.display="none";
}
var srcElement = document.getElementById(ele);
if(srcElement) {
if(srcElement.style.display == "block") {
srcElement.style.display= 'none';
fShowHide=ele;
}
else {
srcElement.style.display='block';
fShowHide="";
}
}
}

Как-то так

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий