Autor Zpráva
gekoncik
Profil
Ahoj,

mám tento kód:
<div onMouseOut="this.style.visibility='hidden'">
...
<table>
...
</table>
...
</div>


Takže tabulka v divu, který zmizí při odjetí z divu, ale jakmile kurzor najede na tabulku je mimo div a všechno zmizí - chyba. Existuje nějaká událost, nebo nějaký scriptík, aby bral tabulku jako součást divu? Nebo tabulku ignoroval?

V podsťatě jde o kalendář v formuláři, který je vypisovám v divu a zobrazovám po kliknutí na ikonku malého kalendářiku. A já potřebuju aby celý kalendář zmyznul po odježí myši. (Pokud máte i nějaký návod jak udělat trošku časovou odezvu při odjetí tak ho rád uvítam)
peta
Profil
gekoncik
japsatweb - css - position
gekoncik
Profil
peta

Nějak nechápu co tím myslíš? Zkoušel jsem různé pozition: [absolute, relative], kromě rozhození ramečků žádná změna.
Leo
Profil
Peti si nevsimejte.

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

Leo
gekoncik
Profil
Něco více česky :)
peta
Profil
A precetl sis cely ten text? position je fajn, ale tez je treba umet nastavit z-index.
A nenapsal jsi, ve kterem prohlizeci ti to zlobi, zadnou ukazku, co pise JS konzola a dalsi podrobnosti? Treba v IE dost zlobi SELECT, ktery nejde nicim jinym prekryt, pokud neni v iframu.
Pravdepodobne to bude chybne provedene floatovani. Zkus si udelat jednoduchy priklad uplne mimo jen tady s timto.
gekoncik
Profil
Ono to není syntaktická chyba, ale "logická". Zlobí to ve všech prohlížečích.
-----------------------------------
okolní stránka
+--------+
|#ab     |
|+----+  |
||#zy |  |
|+----+  |
+--------+
-----------------------------------


Když u #ab nastavím onmouseout....style.color = 'red'. Kdy se text v #ab nastaví na červenou? Při odjetí z #ab :) Ale funguje to když odjedu na okolní stránku - super, ale jakmile kurzor najede na #zy a to je jiný objekt už myš "odjela" z #ab a text se obarví na červenou (v #ab).

Z-index taky nefunguje :)
peta
Profil
gekoncik
jak uz jsem psal, ukazku, podrobnosti, co pise js konzola, co pise validator? zadne udaje nemam. Kdyz ti to napisi ja, tak to bude fungovat, at uz to napisi tim samym nebo jinym zpusobem. To problem ale neresi :)

jeste muzes dat vsem vnorenym tu udalost. Ale myslim si, ze tam mas nekde chybu.
gekoncik
Profil
Konzole mi chybu nehlasí. Je to správně napsané, pouze když kurzor najede na jiný objekt v divu - tabulku, select tak je myš mimo div. I když opticky je v něm, ale pouze je na jiném objektu. Ale pokud máš nějaké řešení tak jsem udělal jednoduchý příklad stačí když si vytvoříš div a v něm tabulku. U divu nastaviš něco ve stylu:
onmouseout='alert("myš je pryč")'


Jen říkám že konzole mi nic nehlásí, jak opera dragonfly tak FF chyb. konzole.

Nevím už jak bych ti to přiblížil je to jako když máš funkci na náhodné číslo. Bohužel ti generuje čísla od 1 do 100, ale ty potřebuješ čísla od 0 do 1 a co stím? Musíš to upravit aby ti to vracelo hodnoty jaký chceš a já chci definovat oblast v DIVU včetně vnořených objektů, ne jako "díry", které tam vytváří vnořené objekty.

V jedné věte: Div má onmouseout='blaaaa blaaa', když nejedu na vnitřní objekt provede se blaaaa blaaa a to je chyba. Jak pravit kód aby bral onmouseout pouze když vyjede z DIVu.
gekoncik
Profil
Změna plánu, trošku jsem si to rozmyslel a onmouseout není v tomto případě dobrá volba.. Asi by bylo lepší kdyby uživatel kliknul mimo DIV a pak by zmyzel :)
joe
Profil
gekoncik
Možná by bylo lepší použít pseudotřídu :hover a na starších to řešit pomocí JS a nebo tam by to mohlo být pořád :-)

peta
A co kdyby sis to radši zkusil a neplácal tu blbosti a tvé oblíbené sekce na webu JPW. Čekal jsem, že když už něco napíšeš, víš že tam je řešení, ale kdepak, nevíš nic...
gekoncik
Profil
Hover nefunguje :(
Dero
Profil
gekoncik

Pro IE stačí použít události onMouseEnter a onMouseLeave. Pro ostatní prohlížeče je třeba napsat jednoduchý skript s využitím vlastnosti relatedTarget. Ukázku máš na stránce, kterou posílal Leo. Příliš angličtiny k porozumění nepotřebuješ.

Když ti navíc prozradím, že tato vlastnost nese v případě onMouseOut odkaz na prvek, kam myš směřuje, tak je snadné jednoduchou podmínkou provedení události zrušit v případě, že myš přejíždí na vnořený objekt.
peta
Profil
joe
ja jsem si to zkusil, mne to vsechno funguje.
Mam prohlizec Firefox 2, pouzil jsem obycejny div, obycejnou tabulku, obycejny select, obycejny onmouseover.
Co mam on jsem se do ted nedozvedel. Jak vypada jeho jednoduchy priklad s chybou take ne.
Zatim vim jen to, ze JS konzola zrejme nehlasi chybu.
A pro upresneni, v IE ma tabulka marnin. Pokud neni jeho div ohranicen rameckem border, pak se margin prenasi mimo div a to muze zpusobit tez zavirani. Takovych pricin je mnoho, staci se podivat do starsich tema. Otazka je, co presne tam ma on. Bez toho se dal nedostanes. Nebo muzu vsech 100 pricin jmenovat, coz je ztrata casu, delat to pokazde 5x za tyden. Dalsi pricina je chybny float, treba, coz jsem psat, tez jsem se zatim nedozvedel, zda tam je nebo neni nejaky float.

gekoncik
kdyz uz je zminka o tom selectu, tak select v IE6 nelze nicim prekryt. Vykresluje se nejakou WIN funkci a tu muzou prekryt jen dalsi takove. Jedina moznost je pouzit Iframe kolem nej. Tim padem to muzes cele otevrit v novem okne a ccely problem se z casti zjednodusi, u predavani udaju do okna nad trosku zkomplikuje.
jakpsatweb - javascript - objekt window
jakpsatweb - javascript - priklady - objekt window
Dero
Profil
peta: O selectu jsi naprosto mimo téma začal hovořit ty. Nepochopil jsi dotaz. Rozvádět toto téma dále (a ještě k tomu nepřesně) je zbytečné. Buď srozuměn s tím, že další zavádějící příspěvky do tohoto vlákna ti budu mazat.
peta
Profil
Dero
"Konzole mi chybu nehlasí. Je to správně napsané, pouze když kurzor najede na jiný objekt v divu - tabulku, select tak je myš mimo div."
Bud to tam ma nebo to zkousel jedno nebo druhe, kdyz jsem se o selectu zminil. To se z vety poznat neda.
zgr
Profil *
gekoncik:
do všech vnitřních objektů mizejícího divu musíš nacpat onmouseover kterej parentNoda opět zobrazí.
to bude asi tak nejjednodušší.
Witiko
Profil
Buď již zmíněný relatedTarget nebo celý div něčím zvrchu přiklopit, říkejme tomu myšolap.

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