Autor Zpráva
Pavlii
Profil *
Ahojte, mám problém s hromadným zobrazením skrytých DIVů a myslím, že řešení bude asi jednodušší než si myslím. Používám JS pro rozevírání jednotlivých DIVů, konkrétně:
function zobrazSkryj(idecko)
  {
    el=document.getElementById(idecko).style;
    el.display=(el.display == 'block')?'none':'block';
  }

V CSS mám
.appendix {display: none; height: 120px; background: #EEEEEE}

Skrývaných položek je na stránce více, každé má své IDčko a jednotlivě je mohu skrývat a odkrývat. Jenže jak udělat hromadné odkrývání a skrývání přes jeden odkaz? Potřeboval bych nějak měnit hodnotu v CSS z "none" na "block"... Poraďte prosím
Kcko
Profil
Tak když to vezmeme co nejprimitivněji tak

<a href="#" onclick="zobrazSkryj('id1'); zobrazSkryj('id2'); zobrazSkryj('idn');">zobraz / skryj</a>


Já osobně bych to napsal trošku jinak ... -> jQuery
Pavlii
Profil *
Kcko:
Dík, avšak skrývaných položek se na stránce zobrazuje více jak 320... raději bych nějak měnil přímo ten styl...
Chamurappi
Profil
Reaguji na Pavliiho:
Změň třídu společného rodiče a zbytek práce nech na CSS.
Hodil by se konkrétnější popis problému — tohle hromadné přepnutí má být nezávislé na přepínání obhospodařovaném uvedeným skriptem?
Pavlii
Profil *
Chamurappi:
Uvedený skript má odkrývat pouze jednotlivé DIVy a proto bych pro hromadné odkrytí všech DIVů použil jiný script. V JS jsem dost slabý a tak mě nenapadá jak to myslíš... Pomohl by mi kousek scriptu. Díky!
Chamurappi
Profil
Reaguji na Pavliiho:
<style>
.schovej-potomky .potomek { display: none; }
</style>
<script>
  function zobrazSkryj(idecko)
  {
    var el = document.getElementById(idecko)
    if(el.className != "schovej-potomky")
      el.className = "schovej-potomky";
    else
      el.className = "";
  }
</script>
<div id="rodic">
  <div class="potomek">Tohle se skryje.</div>
  <div>Tohle se neskryje.</div>
  <div class="potomek">Tohle zase jo.</div>
  <button onclick="zobrazSkryj('rodic'); return false">Přepnout zobrazení</button>
</div>
Pavlii
Profil *
To je ono!!! Díky moc!
Pavlii
Profil *
Včera jsem jásal dost předčasně. Osvětlím celou záležitost:

CSS:
.appendix {display: none; height: 120px; background: #EEEEEE}


<script LANGUAGE="JavaScript">
function zobrazSkryj(idecko)
  {
    el=document.getElementById(idecko).style;
    el.display=(el.display == 'block')?'none':'block';
  }

function ukaz()
  {
    le=document.getElementByName('app').style;
    le.display=(le.display == 'block')?'none':'block';
  }
  </script>

<a href="#" onclick="ukaz()">Zobraz/skryj vše</a>
  
  <p>Nadpis 1 <a href="#" onclick=" zobrazSkryj(1)">podrobnosti</a></p>
  <div id="1" name="app" class="appendix">Skrývaný obsah</div>
  <p>Nadpis 2 <a href="#" onclick=" zobrazSkryj(2)">podrobnosti</a></p>
  <div id="2" name="app" class="appendix">Skrývaný obsah</div>
  <p>Nadpis 3 <a href="#" onclick=" zobrazSkryj(3)">podrobnosti</a></p>
  <div id="3" name="app" class="appendix">Skrývaný obsah</div>
  
Skrývaných divů je na stránce přes 300 a potřebuji je odkrývat a skrývat jednotlivě i všechny najednou bez ohledu na to, zda už jsou odkryté. Zkoušel jsem i script od Chamurappi, ten ovšem neřeší skrývání jednotlivých divů. Podle mě potřebuji 2 identifikátory ke skrývaným DIVům. Jeden proměnný (současné ID) a druhý NAME. Jenže takhle jede pouze jednotlivé odkrývání. Když bych ale nějak přepsal CSS na display: block, splní to svůj účet. Počet skrývaných prvků předem neznám, jedná se o výstup z databáze a upřímně je dost obsáhlý, tudíž nechci do DB lézt pro info o počtu řádků. Hold jsem na JS lopata :-(

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0