Autor | Zpráva | ||
---|---|---|---|
vojtan Profil |
#1 · Zasláno: 20. 8. 2011, 12:15:22
Mám skript na záložky, ale nefunguje mi v IE 7 a 8, v ostatních prohlížečích jako IE 9, Chrom, Firefox funguje bez problému, někde jsem četl, že chyba by mohl být v getElemetsByClassName a getElementsById, ale já vůbec netuším, jak to přepsat, aby mi to fungovalo. Poradí někdo?
function hasClassName(element,className) { return element.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")); } function zalozky(hodnota){ var celkemZalozek = document.getElementsByClassName("detailZalozka").length; for (i = 0; i < celkemZalozek; i++) { document.getElementsByClassName("detailZalozka")[i].className = "detailZalozka"; document.getElementsByClassName("detailObsahZalozky")[i].style.display = "none"; } document.getElementById("zalozka_" + hodnota).className = "detailZalozka detailZalozkaAkt"; document.getElementById("obsah_" + hodnota).style.display = "block"; if (hodnota == "alternativni") { zmenaVyskyZbozi(4, 'altNazev', 'altTelo'); zmenaVyskyElementu(4, 'vyrobkyStejneVelikeFoto2', 'imgStejneVelike2'); } } |
||
pcmanik Profil |
#2 · Zasláno: 20. 8. 2011, 13:09:45
vojtan:
Bude to tym, ze funkcia getElementsByClassName() V IE strarsich ako 9 proste neexistuje. |
||
Chamurappi Profil |
#3 · Zasláno: 20. 8. 2011, 16:24:03
Reaguji na vojtana:
Není jednodušší změnit všechno to, co změnit chceš, změnou jedné jediné třídy na společném rodiči? Měnit víc tříd na více elementech je málokdy potřeba. |
||
vojtan Profil |
#4 · Zasláno: 21. 8. 2011, 10:45:49
Když já tomu vůbec nerozumím, potřebuji jen poradit nějaké řešení jak kód přepsat, aby mi to fungovalo i ve straších verzích.
|
||
vojtan Profil |
#5 · Zasláno: 21. 8. 2011, 12:15:33 · Upravil/a: vojtan
Ještě jsem zkusil změnit kód:
function zalozky(hodnota){ var celkemZalozek = document.getElementsByTagName("detailZalozka").length; for (i = 0; i < celkemZalozek; i++) { document.getElementsByTagName("detailZalozka")[i].setAttribute("class", "detailZalozka"); document.getElementsByTagName("detailObsahZalozky")[i].style.display = "none"; } document.getElementById("zalozka_" + hodnota).setAttribute("class", "detailZalozka detailZalozkaAkt"); document.getElementById("obsah_" + hodnota).style.display = "block"; } Přidal jsem ke každému prvky name, které má stejnou hodnotu jako class, ale teď se mi jednotlivé záložky nepřepínají, ale když na jednu kliknu, tak se obsah zobrazí pod tou původní. Už fakt nevím, jak to ještě upravit :( Tady ještě kód html: echo "<div class=\"detailZalozka"; if ($zalozky==0): $name_zalozka = " detailZalozkaAkt"; echo " detailZalozkaAkt"; $akt_zalozka="dotaz"; endif; echo "\" name=\"detailZalozka".$name_zalozka."\" id=\"zalozka_dotaz\" onclick=\"zalozky('dotaz');\">Dotaz na zboží</div>\n"; echo "</div>"; if ($zaznam ["popis"]!=""): echo "<div name=\"detailObsahZalozky\" class=\"detailObsahZalozky"; if ($akt_zalozka=="popis") echo ""; else echo " skryte"; echo "\" id=\"obsah_popis\"><p>"; echo $zaznam ["popis"]; echo "</p></div>\n"; endif; |
||
Časová prodleva: 13 let
|
0