Autor | Zpráva | ||
---|---|---|---|
Dolphi Profil |
#1 · Zasláno: 17. 10. 2006, 02:02:01
Mám takovýto seznam:
<a href="" title="" class="cervena" id="ida_27">Odkaz 1</a> <a href="" title="" class="cervena" id="ida_1">Odkaz 2</a> <a href="" title="" class="cervena" id="ida_28">Odkaz 3</a> <a href="" title="" lass="modra" id="idb_2">Odkaz 4</a> <a href="" title="" class="cervena" id="ida_3">Odkaz 5</a> <a href="" title="" class="modra" id="idb_4">Odkaz 6</a> a potřeboval bych nějak dynamicky zobrazovat a skrývat položky buďto červené, nebo modré - v závislosti na akci uživatele :) Můžete mi někdo prosím poradit? |
||
los Profil * |
#2 · Zasláno: 17. 10. 2006, 08:54:35
Na akciu používateľa zavesíš obslužnú funkciu, ktorej pošleš v argumente CSS triedu, ktorú chceš schovať:
function changeAnchors (hide) { var el, els = document.getElementsByTagName ("a"); for (var i = 0; el = els [i]; ++i) if (el.id.substr (0, 2) == "id") el.style.display = (el.className == hide? "none": ""); } changeAnchors ("modra"); Tá funkcia prebehne každý element "a" a ak sa jeho CSS trieda rovná zadanej triede, tak ho schová, ináč ho zviditeľní. V tomto prípade by mohlo byť lepšie pozerať sa skôr na id - nebude to ovplyvňovať viditeľnosť elementov "a", ktoré nemajú id v požadovanom tvare (v predchádzajúcom prípade by to šlo tiež dosiahnuť kontrolou, či má element "a" jednu z CSS tried "modra" alebo "cervena", ale v prípade, že by si neskôr doplnil ďalšie typy, musel by si meniť aj JavaScript - v prípade použitia nasledujucej funkcie by si použil napr. element s id="idc_1" a kód JavaScriptu by si meniť nemusel): function changeAnchors (hide) { var el, els = document.getElementsByTagName ("a"); for (var i = 0; el = els [i]; ++i) if (el.id && el.id.substr (0, 2) == "id" && el.id.charAt (3) == "_") el.style.display = (el.id.charAt (2) == hide? "none": ""); } changeAnchors ("a"); |
||
Dolphi Profil |
#3 · Zasláno: 17. 10. 2006, 14:43:18
Díky moc, po drobných úpravách to dělá přesně to, co chci. Ještě jednou díky.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0