Autor Zpráva
lama_1
Profil
Dobrý den, díky příspěvků: [url=http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=61818][/url] jsem si vytvořil rozbalovací menu. Syntaxe zdrojáku vypadá takhle:


<script LANGUAGE="JavaScript">
function show(ide) {
var element=null;
if (document.getElementById) {
element=document.getElementById(ide);
}
else if (document.all) {
element=document.all[ide];
}
else if (document.layers) {
element=document.layers[ide];
}
if (element) {
if (element.style) {
(element.style.display!='none') ? element.style.display = 'none' : element.style.display = 'block';
}
else {
// někde je něco špatně
}
}
return;
}
</script>
<ul>
<li><a onclick='show("submenu1")' href="#">Submenu1</a>
<ul id="submenu1">
<li><a onclick='show("subsubmenu1")' href="#">Subsubmenu1</a>
<ul id="subsubmenu1">
<li>&lt;*** tady jsou pak jednotlivý odrážky***</li>
</ul>
</li>
<li><a onclick='show("subsubmenu2")' href="#">Subsubmenu2</a>
<ul id="subsubmenu2">
<li>&lt;**opět další odrážky*</li>
</ul>
</li>
</ul>
</li>
<li><a onclick='show("submenu2")' href="#">Submenu2</a>
<ul id="submenu2">
<li>&lt;***a zase odrážka***&gt;</li>
</ul>
<script language="JavaScript" type="text/javascript">
show("submenu1");
show("subsubmenu1");
show("subsubmenu2");
show("submenu2");
</script></li>
</ul>

Problém je v tom, že obsahuje-li tohle menu hodně položek a já si např. sescrolluju myšidlem na monitoru někam dolu a rozbalim menu, refreshne se obrazovka a jsem opět na první položce menu - tedy ne na té, kterou jsem aktuálně rozbalil (i když ta zůstává korektně otevřená).
Ideální chování by bylo takové, kdy po rozbalení položky v menu zůstane scrollbar na stejné úrovni, na které jsem se zrovna nacházel a nebude mě to pokaždé házet na horní část obrazovky.

Odladíte to někdo, prosím?

Díky moc.
panther
Profil
lama_1:
přidej k onclicku return false, případně by možná postačilo nezadávat atribut href.

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: