Autor Zpráva
icka
Profil *
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
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
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 *
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
icka:
Zrovinka se mi podařilo najít stránku kde je elegantně problém vyřešen..
Trochu priveľa kódu voči riešeniam [#2] a [#3]. Zo zbežného pohľadu na kód sa mi to zdá ako uplatnenie princípu v [#3].

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: