Autor Zpráva
Ronny
Profil *
Ahoj, pres JS si zobrazuju pomoci zalozek text, a chci, aby ta zalozka, ktera je prave aktivni, mela jinou barvu pozadi ez ty ostatni... skript vypada takto:
<script>
		var zobrazena = "prvni"; 
		function zobraz(polozka){
			if (document.getElementById){
				document.getElementById(zobrazena).style.display = "none"; 
				document.getElementById(polozka).style.display = "block"; 
        zobrazena = polozka; 
				return false; 
			}
			else {
				if(document.stylesheets) document.stylesheets["zalozky"].disabled = true; 
				return true; 
			} 
		}
	</script>


a odkazy si vypisuji nasledovne:
<a href="#prvni" onclick="return zobraz('prvni'); ">Bla</a> 


V JS se moc nevyznam, tak budu vdecny za kazdou radu :)
peta
Profil
jakpsatweb - css - pseudotrida :hover
jakpsatweb - zdokonaleni odkazu
jakpsatweb - javascript - priklady - zacatecnicke priklady / prace s dokumentem
jakpsatweb - javascript - priklady - udalost onmouseover
Ronny
Profil *
peta
ja pis chci, aby kdyz kliknu na ten odkaz, aby mel napr. jinou barvu pozadi, aby bylo zrejme, na co uzivatel kliknul (active)
Smajda
Profil
myslim že asi nějak tak přes css....

a {background-color: #FF0000;}
a:active {background-color: #00FF00;}

doufám že je to správně
Str4wberry
Profil
Plus a:focus.
habendorf
Profil
Ale notak, co mu to tu všichni píšete za koniny?

Ronny

Vytvoř si css třídu pro aktivní záložku a tu vždy odkazu přiřaď. Po kliku na jiný odkaz ji musíš odebrat (nebo tam prostě vrátit původní) a dát ji zase aktuálně aktivnímu odkazu.

:hover, :active ani :focus s tím nesouvisí ani za mák.
Ronny
Profil *
ukázka

tak v IE a FF mi to funguje dobře, problém je ale v Opeře, kde po kliknutí např. na BLIŽŠÍ INFORMACE se nezmění barva pozadí záložky....

CSS mi vypadá následovně:
.zalozka a {
	border: 2px solid #134091;
	border-bottom: none;
	padding: 4px;
	background-color: whtie;
	text-decoration: none;
	color: black;
}
.zalozka a:hover {
	background-color: #E3ECFB;
}
.zalozka a:active {
	background-color: #E3ECFB;
}
.zalozka a:focus {
	background-color: #E3ECFB;
}


Neexistuje pro Operu nějaký hack či tak něco?
habendorf
Profil
Ronny

Nefunguje ti to v ničem. Klikni si mimo záložku a uvidíš. Ani to fungovat nemůže. Viz můj příspěvek výše.
Ronny
Profil *
habendorf
nj ale jak to udělat? ...nevím jak tu třídu přiřadit nebo odebrat od záložky
habendorf
Profil
Prostě na onclick zavoláš funkci, která:

1) odebere třídu předchozímu (className='';)
2) nastaví třídu současnému (className='nejaka_trida';)
3) do proměnné si uloží id současného aktuálního odkazu.
jakubroz
Profil
muzes ukazat jak by měl vypadat ten kod?
Chamurappi
Profil
Reaguji na Ronnyho:
<script>
onload = function()
{
  var navracec = null;
  var nastavZalozku = function(uri)
  {
    var zalozka = uri.match(/#(.*)$/);
    zalozka = zalozka && document.getElementById(zalozka[1]);
    zalozka && (navracec && navracec(), navracec = function(zalozka, trida)
    {
      zalozka.className += " aktivni-zalozka";
      return function()
      {
        zalozka.className = trida;
      };
    }(zalozka, zalozka.className));
  };
  var odkazy = document.getElementsByTagName("a");
  for(var i = 0, l = odkazy.length; i < l; i++)
    odkazy[i].onclick = function()
    {
      nastavZalozku(this.href);
    };
  nastavZalozku(location.href);
};
</script>
Třeba.
Ronny
Profil *
Chamurappi
no a jak by ted vypadal odkaz? ...jsem z toho trochu zmateny...:(
peta
Profil
Ronny
jakpsatweb - html - seznamy / zalozky

jinak ten dalsi popis ledaco vysvetluje. Je treba prenaset na novou stranku hodnotu, viz a to preg GET nebo cookies anebo pres session v php a pod.
jakpsatweb - javascript- priklady - gethttpvars
jakpsatweb - javascript- priklady - cookies
Str4wberry
Profil
Reakce na habendorfa:
Ale notak, co mu to tu všichni píšete za koniny?
Ale no tak, trochu to funguje. :–)


Reakce na Ronnyho:
Nebude pro Tebe jednodušší použít třeba tohle? Půjde se tak dostat k textu i při vypnutém JavaScriptu.
Chamurappi
Profil
Reaguji na Ronnyho:
Vypadal by jako klasický odkaz:
<a href="#prvni">Bla</a>

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: