Autor Zpráva
MikeCZ
Profil
Mam takovej problém, nefunguje mi code... kdo mi bude schopnej poradit, tak už rovnou určitě pozná oč mi šlo a případně mi navrhněte jinej způsob, jestli to jde. Díky moc

javascript
function getElementsByClass( searchClass, domNode, tagName) {
	if (domNode == null) domNode = document;
	if (tagName == null) tagName = '*';
	var el = new Array();
	var tags = domNode.getElementsByTagName(tagName);
	var tcl = " "+searchClass+" ";
	for(i=0,j=0; i<tags.length; i++) {
		var test = " " + tags[i].className + " ";
		if (test.indexOf(tcl) != -1)
			el[j++] = tags[i];
	}
	return el;
}

function zobraz(idecko,lfsw){
	...
	var el2=getElementsByClass('members_hover'); 
	el2.style.background=(el2.style.background == '#FF0000 url(/images/title_bgr.jpg)')?'#000 none':'#FF0000 url(/images/title_bgr.jpg)';
	el2.style.textDecoration=(el2.style.textDecoration == 'underline')?'none':'underline';
	...
}


css
.members_hover, #clanok_sub_member:hover
{
background: #000 none; text-decoration: none;
}


nakonec html
...<div id="clanok_sub_member" class="members_hover" onclick="zobraz(\''.$line["id"].'\',\''.$line["lfsw"].'\');">...


Prostě to má měnit vlastnosti u clanok_sub_member po tom, co se klikne na DIV... chtěl jsem to vyřešit tak, že k tomu dám třídu a pak změním její vlastnost, čímž vlastně změním i ten hover. Zbytek kódu co jsem tam dal chybný není, fungoval už předtím normálně...

btw zde najdete návod na tu funkci getElementsByClass http://www.anyexample.com/webdev/javascript/javascript_getelementsbyclass_function.xml
Nox
Profil
Co třeba vyměnit třídy? "members_hover" na "members_active"...dokonce to je pěkně sémantické

Jinak getElementsByClass jde krásně v knihovnách... $(".members_hover")
MikeCZ
Profil
Jaksi sem nepochopil co mám tedy udělat... chybí mi tam tečka? V příkladu tam také není
Nox
Profil
Žádná tečka nechybí...jen říkám místo změny vlastností vyměnit třídu (atribut className)
MikeCZ
Profil
Jo, to mě taky napadlo, ale když změním třídu, tak se nic nevyřeší, protože clanok_sub_member:hover bude definovany stale stejne, ne? Mozna se mi to nevyjasnuje uplne, kdyztak prosim jednoduchy priklad...

EDIT: ten minulej post sem spatne pochopil :)... tj jedno
SwimX
Profil
MikeCZ
pokud ten div bude mít třídu i ID pak bych v css ho zaměřil přes oboje
div#clanok_sub_member.members_hover:hover
resp.
div#clanok_sub_member.members_active:hover
MikeCZ
Profil
jo, takhle by to vlastně šlo, zkusím, díky :)
MikeCZ
Profil
div#clanok_sub_member.members_hover:hover 
{
background: #000 none; text-decoration: none;
}

div#clanok_sub_member.members_active:hover 
{
background: #FF0000 url(/images/title_bgr.jpg); text-decoration: underline;
}


	el2=document.getElementById('clanok_sub_member'); 
	el2.className=(el2.className == 'members_active')?'members_hover':'members_active';


<div id="clanok_sub_member" class="members_hover" onclick="zobraz(\''.$line["id"].'\',\''.$line["lfsw"].'\');">


stale nefunguje :( a zbytek skriptu ano
MikeCZ
Profil
Omyl, funguje. Díky
SwimX
Profil
MikeCZ
v IE6 ale funguje hover jen na element a. Je třeba využít hover.htc
Chamurappi chybí mi ta klávesová mapa :(

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