DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Event ponovno okinut na child elementima (http://www.devprotalk.com/showthread.php?t=4975)

dee 27. 03. 2008. 18:14

Event ponovno okinut na child elementima
 
situacija:

Kôd:

<div id="nekiDiv">
<p>
<a href="#">neki link</a>
</p>
</div>

na #nekiDiv je postavljen 'mouseover' event i radi uredno, medjutim se event okida i svaki puta kada se desi mouseover preko p elementa (p ne prelazi cijelom svojom povrsinom preko #nekiDiv). naravno, na p nije zalijepljen nikakav event.

ima li neko jednostavno objasnjenje zasto?
zakljucak bi, naime bio, da p ne shvaca kao dio #nekiDiv. ajd da je na p zalijepljen neki drugi event, jos bih shvatio, al ovako mi nije jasno...

ima li neko smisleno objasnjenje/rjesenje?

jablan 27. 03. 2008. 20:02

Možda ovde pronađeš odgovor:

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

ivanhoe 28. 03. 2008. 00:58

potrazi na googlu "javascript event bubbling". Takodje, na nekim browserima tu imas jos jedan efekat da kad mis ode iznad <p> on efektivno izadje iz <div> pa dobijes i jedan extra mouseout

Blood 28. 03. 2008. 01:38

Citat:

Originalno napisao ivanhoe (Napišite 53050)
potrazi na googlu "javascript event bubbling". Takodje, na nekim browserima tu imas jos jedan efekat da kad mis ode iznad <p> on efektivno izadje iz <div> pa dobijes i jedan extra mouseout

..daaaa da, redovna pojava.
Moj savet. Koristi neki framework, jako je lepo reseno to kod njih (konkrento - prototype ili mootools u mom slucaju).

ivanhoe 28. 03. 2008. 04:59

i jquery ima onmouseenter event, koji resava te probleme...

dee 28. 03. 2008. 12:57

hvala svima!

nisam u situaciji koristit jquery, ali nadjoh pristup koji rjesava stvar:

http://kendsnyder.com/sandbox/EnterLeave.html

ivanhoe 29. 03. 2008. 01:58

postoji jos jedno jednostavno resenje: akciju iz mouseout zakasnis pomocu setTimeout() za npr. 50-tak milisekundi, a u onmouseover dodas da se cancel-uje taj timeout. Prilikom prelaska sa parenta na child elemnt se mouseout i mouseover desavaju odmah jedan za drugim tako da se onda oni poniste, a kad se desi onaj pravi mouseout na parentu, onda se odradi zakasnjeno, ali taj delay je toliko mali da je to neprimetno.. jedini problem je sto se mouseover izvrsava dvaput, ali obicno to nije problem, to ne stvara flicker

dee 29. 03. 2008. 11:41

da, i to je ok rjesenje... tnx

jedino, nije mi jasno, onako opcenito, koji je smisao da se ulaskom u child element okida mouseout parent elementa? to mi zvuci ko propust (iako vjerujem da mozda ima neku logiku). child element je dio parenta, samim tim, logicno mi zvuci da dok je mis na childu, istovremeno je i na parentu, samim tim, mouseout nema smisla.


Vreme je GMT +2. Trenutno vreme je 02:21.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.