Autor Zpráva
MelkorNemesis
Profil
Ahoj, mam do menu na webu pridany javascript.
Pri prejizdeni pres hlavni kategorie se vam zobrazuji prislune podkategorie. Ale obcas se uzivateli muze stat, ze omylem prejede pres nejakou hlavni kategorii - a je potom dezorientovany (protoze ma byt jine).

Proto jsem hlavni menu i submenu obalil do <div id="menu_js" onmouseout="defaultMenu();"></div> a udelal javascriptovou funkci, ktera vzdy vraci spravne menu po odjeti z celeho <div id="menu_js" onmouseout="defaultMenu();">

function defaultMenu() {
	var target = document.getElementById('sub_menu'); // kam zobrazit puvodni menu
	var categoryNum = document.getElementById('default_menu').innerHTML; // zjisti cislo kategorie, ktere zobrazit
	var div = document.getElementById('item_' + categoryNum); // div s prislusnymi submenu
	
	target.innerHTML = div.innerHTML; // priradit divu prislusne submenu
}



Problem je ten, ze onmouseout se aktivuje vzdy, kdyz opustim mysi jakykoliv text. Tudiz se nedostanu do submenu abych si vybral kategorii - a porad se mi tam vraci ta puvodni. Jak mam docilit toho, aby za onmouseout oblast byl povazovan cely div a ne jen text v nem?

diky vsem, hezky vecer preji
Leo
Profil
"Ale obcas se uzivateli muze stat, ze omylem prejede pres nejakou hlavni kategorii - a je potom dezorientovany (protoze ma byt jine)."

Tak uz tady jsem prestal chapat, co to ma delat presne. Onmouseout se spousti pri opusteni zanoreneho prvku, to mate pravdu, zalezi na strukture menu v html, jinak musite testovat event.relatedTarget, rodicovske prvky a jine legrace, ale u rozbalovaciho menu jsem to nikdy nepouzil, Leo
MelkorNemesis
Profil
Leo: pokud uzivatel prejede pres hlavni kategorii -> zobrazi se mu prislusne subkategorie -> vybere si subkategorii a klikne, odkaz ho presmeruje. Ale muze se taky stat, ze uzivateli se zrovna donacte stranka a pres hlavni kategorie jen prejede -> zobrazi se mu jine subkategorie nez ty, ktere nalezi aktualni vybrane hlavni kategorii. Tim padem nastava dezorientace, protoze si toho nemusi vsimnout, ze tam ma jine submenu, nez ma byt. A proto bych chtel vzdy pri opusteni celeho menu zobrazovat to puvodni.
MelkorNemesis
Profil
Leo: diky za voditko, postupnym badanim se zda, ze jsem dospel k cili
if(event.relatedTarget.id != 'sub_menu' && event.relatedTarget.id != 'navigation' && event.relatedTarget.name != 'link') {
		target.innerHTML = div.innerHTML;
	}



ale IE mi jeste hlasi
relatedTarget.id is null or is not object .. nevi nekdo proc? // spraveno, ie to ma zas jinak
(event.toElement || event.relatedTarget).id
Leo
Profil
"spraveno, ie to ma zas jinak"

jako skoro vsechno. Jinak k tematu:

http://www.quirksmode.org/js/events_mouse.html

Leo

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