Autor Zpráva
Kyoshi
Profil *
Nevěděl jsem jak to pojmenovat tak, aby to vyjadřoval podstatu problému, tak sorry.

kus zdrojáku a link na web: Odkaz
<a onclick="xcollapse('X9560'); return false;" href="#">...</a>
<table id="X9560" class="collapse">
..
</table>


Mám tam těch colapse několik, jak je vidět z náhledu zdrojáku webu. Jde mi jen o to, že když kliknu na jedno a pak hned na druhé, tak se zobrazí další okno a to předešlé se posune pod něj. Je to normální funkce, ale mě jde o to, jak udělat, aby se po kliknutí na další zavřelo to předešlé okno. Snad je to k pochopení.
Něco jako, když nastavím return false tak, aby se při kliknutí na nabídku 2 zavřel otevřený obsah nabídky 1 a místo ní se ukázal obsah nabídky 2.
Určitě to jde udělat nějak čistě, ale zatím jsem nenašel jak.
Předem díky za jakoukoli odpověď.
Chamurappi
Profil
Reaguji na Kyoshiho:
Udělej si globální proměnnou (var currentccommid mimo funkci), do které uložíš právě zobrazený element (currentccommid = ccommid za ccommid.style.display = 'block') a ten skryj při otevírání dalšího (currentccommid.style.display = 'none' před ccommid.style.display = 'block').
Kyoshi
Profil *
Ahoj,
tak já se předem omlouvám, ale v tom zřejmě dost plavu.
JavaScript jde mimo mě a tak těm globálním a lokálním proměnným moc nerozumím. Snažil jsem se to pochopit a zbytečně tak tady neotravovat dotazy, a proto jsem posledních 10 dní četl snad vše, co se onoho problému týkalo, ale nic :(
Mohl by jsi sem prosím hodit nějaký názorný příklad? Pokud možno, tak s použitím toho, co mám na webu (ano.. prosím o kompletní vyřešení problému :'( ). Mé amatérské pokusy selhali a už dál prostě nemůžu :)
Jo a... stejně, díky za radu! V podstatě to chápu, ale chybí mi základy k tomu, abych to převedl do praxe.
Chamurappi
Profil
Reaguji na Kyoshiho:
ale v tom zřejmě dost plavu
Jako ryba ve vodě :-)

Před těmi deseti dny jsem mluvil o skriptu xcelements.js. Úprava, kterou jsem popsal, by vedla cca k tomuhle:
var currentccommid;
function xcollapse(id) 
{ 
  var ccommid = document.getElementById(id); 
  if(ccommid !== null)
  {
    if(ccommid.style.display == 'block')
    {
      ccommid.style.display = 'none';
    }
    else
    {
      if(currentccommid) currentccommid.style.display = 'none';
      ccommid.style.display = 'block';
      currentccommid = ccommid;
    }
  }
}
Kyoshi
Profil *
Chamurappi:

Pááni .. ono to fakt funguje. Musím se přiznat, že jsem to prve házel přímo do zdrojáku v
<script type="text/javascript" language="JavaScript"><!-- ...


A taky koukám na to, co vzešlo z první tvé rady.. to co jsem vytvořil já se tomuhle absolutně nepodobalo :-D
O tom xcelements.js jsem dokonce nevěděl, že ho tam máma, a i kdyby.. nevěděl bych na co je :)

Díky díky moc.. už to fachá.. překopírovat a přepsat jsem to už dokázal sám ;)
Kyoshi
Profil *
P.S.: díky ještě jednou a jdu to oslavit k ohni ;) kamarádi oslavují zvýšení platů, holky nebo povýšení a já... objevení xcelements.js :-D :-D Přeju bouřlivé čarodějnice ;)

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