Autor | Zpráva | ||
---|---|---|---|
icka Profil * |
#1 · Zasláno: 17. 8. 2012, 11:26:43
Ahoj, používám vysouvací roletku, která se aktivuje při najetí kurzoru na okraj roletky.. Vše funguje jak má až na to, že když se kurzor dostane na "child" elementy dané roletky, tak se mi zavolá událoust onMouseOut.. i přes to že jsem stále na roletce.. Potřeboval bych nějakým způsobem zajistit, že když se nacházím stále v dané oblasti, aby se mi roletka neschovávala...
Děkuji za typy |
||
Chamurappi Profil |
#2 · Zasláno: 17. 8. 2012, 11:43:59
Reaguji na icku:
Nejsnazší je dát tam nějaké zpoždění. Vzápětí po tom onmouseout totiž chytíš i onmouseover vyvolaný vnořeným elementem (tyto události probublávají).
Mělo by to fungovat nějak takhle: var timeout; něco.onmouseout = function() { clearTimeout(timeout); timeout = setTimeout(schovat, 100); }; něco.onmouseover = function() { clearTimeout(timeout); }; |
||
_es Profil |
#3 · Zasláno: 17. 8. 2012, 12:17:11
icka, Chamurappi:
Alebo, druhá možnosť, overovať zdroj udalosti: niečo.onmouseout=function(e){ var event = e || window.event; var target = event.target || event.srcElement; if(this===target)schovat(); }; |
||
icka Profil * |
#4 · Zasláno: 17. 8. 2012, 12:39:52
Děkuji za typy..
Zrovinka se mi podařilo najít stránku kde je elegantně problém vyřešen.. Jde v podstatě o ekvivalent událostí MouseEnter a MouseLeave, které v "NON-IE" browserech nefungují.. přikládám tedy odkaz: http://ecmascript.stchur.com/blogcode/mouseenter_mouseleave/ |
||
_es Profil |
#5 · Zasláno: 17. 8. 2012, 12:57:43
|
||
Časová prodleva: 12 let
|
0