ugrás a tartalomhoz

onMouseOver probléma

bnc1995 · 2013. Már. 29. (P), 11.54
Sziasztok!

Adott az alábbi html kód részlet és azt szeretném, hogy ha a kurzort levisszük a div elemről akkor végrehajtódjon az fg() függvény. A probléma az, hogy nem csak akkor hajtódik végre, hanem akkor is ha a div elemen belül ráviszem egy másik elemre.

<div onMouseOver="fg();">
    <ul>
       <li>
          <a href="#">Próba</a>
       </li>
       <li>
          <a href="#">Próba</a>
       </li>
       <li>
          <a href="#">Próba</a>
       </li>
    </ul>
</div>
Mi lehet a probléma?

Segítségeteket előre is köszönöm

Bence
 
1

Diszkrét js?

Pepita · 2013. Már. 29. (P), 12.23
Hallottál már róla?

Egyébként - elkerülendő sok böngészőproblémát - javasolnék egy keretrendszert használni (én jquery-t preferálom), akkor nagyon egyszerűen megoldhatod:

A div-nek nem kell más attribútum, csak id, ez most legyen: "probadiv".
jquery-vel:
$('#probadiv').mouseleave(function(){
/* Itt megírod a függvényed */
});
Szerk.: természetesen a többi eseményre is hasonlóan írhatsz kezelőt és (jquery-vel) nem kell vakerálni böngészőnként, hogy "hogyan is lehetne erre az eseményre..."
5

Ellentmondás

Hidvégi Gábor · 2013. Már. 30. (Szo), 10.07
Múltkor kezdő nyelvnek az Assembly-t ajánlottad, ehhez képest a jQuery a másik véglet, nem?

A böngészők eseménykezelése igazából a billentyűzet és az egér megfelelő alkatrészeinek lenyomásakor és felengedésekor térhet el, de még ezt is meg lehet oldani egy húsz-harminc soros scripttel. Máshol (pl. onmouseout) ez nem okoz gondot, mert nincs szükség az eseményobjektumra.
6

Nem

Pepita · 2013. Ápr. 1. (H), 21.23
Az ellentmondás inkább a témában van ("levisszük az egeret" <> over).

Pont arra jó a jQuery, hogy ne kelljen minden kis mutatványodhoz hozzáragasztani azt a 20-30 sort, valamint arra, hogy a feladatra tudj koncentrálni, ne a bugokra. Nincs semmilyen összefüggés a programozni-tanulással, illetve csak nagyon-nagyon közvetve.
Az ilyesfajta js-effektezgetést nem is tudnám igazán programozásnak hívni.

Szerk.: ja, és látod, hogy oldotta meg! :)
2

a probléma az event bubbling.

szabo.b.gabor · 2013. Már. 29. (P), 14.13
a probléma az event bubbling. meg kellene nézned az fg függvényben hogy honnan érkezett az event, vagy a div-en belüli elemeknél az adott eventre egy stoppropagation kellene..

innentől google a barátod. meg a console.log()
3

Lehet a probléma a

Endyl · 2013. Már. 29. (P), 14.30
Lehet a probléma a mouseover/mouseout és a mouseenter/mouseleave események közötti különbség (SO téma, MDN bejegyzés) nem ismerete, nem értése is, nem csak a bubbling.
4

Sikerült

bnc1995 · 2013. Már. 30. (Szo), 09.37
jQuery segítségével csináltam, és most működik

köszi a segítséget