Bubbling efektus JavaScript
A gondom a következő:
Tegyük fel van 2 DIV-em. Legyen A div, aminek a belsejében van egy láthatalan B div. Az A div onMouseOver eseményének hatására láthatóvá vállik a B div. A gondom az, hogy ha ráviszem az egeret a B div-re akkor létrejön az A div onMouseOut eseménye, holott tulajdonképpen még mindig benne van az egér az A divben hiszen a B div is benne van vagyis nem vittem le az egeret a szülő divről
Azt szeretném elérni, hogy a B div ismét eltünjön, ha az A divről lehúzom az egeret!
Tehát az onMouseOut eseménye az A divnek csak akkor jöjjön létre, ha az összes gyerekéről is levittem az egeret!
(Persze ezt bármekkora mélységig, mondjuk a B divben is lehet egy C div)
Ahol a C div szintén láthatlan, amíg a B-re rá nem viszem az egeret és ha ráhúztam az egeret a B-ről C-re, akkor megint ne fusson le az onMouseOutja sem az A-nak sem a B-nek Viszont, ha a C-ről lehúzom jobbra az egert (tehát nem lessz rajta egyiken sem) akkor tünjön el C is és B is. Tahát úgy működjön mint egy simma legördülő menü, csak épp nem fussanak le a fölösleges események!
■ Tegyük fel van 2 DIV-em. Legyen A div, aminek a belsejében van egy láthatalan B div. Az A div onMouseOver eseményének hatására láthatóvá vállik a B div. A gondom az, hogy ha ráviszem az egeret a B div-re akkor létrejön az A div onMouseOut eseménye, holott tulajdonképpen még mindig benne van az egér az A divben hiszen a B div is benne van vagyis nem vittem le az egeret a szülő divről
---------------
| |
| ---------------
| | |
| A | B |
| | |
| ---------------
| |
---------------
| |
| ---------------
| | |
| A | B |
| | |
| ---------------
| |
---------------
Azt szeretném elérni, hogy a B div ismét eltünjön, ha az A divről lehúzom az egeret!
Tehát az onMouseOut eseménye az A divnek csak akkor jöjjön létre, ha az összes gyerekéről is levittem az egeret!
(Persze ezt bármekkora mélységig, mondjuk a B divben is lehet egy C div)
---------------
| |
| ---------------
| | |
| A | B ---------
| | | C |
| -----------| |
| | ---------
---------------
| |
| ---------------
| | |
| A | B ---------
| | | C |
| -----------| |
| | ---------
---------------
Ahol a C div szintén láthatlan, amíg a B-re rá nem viszem az egeret és ha ráhúztam az egeret a B-ről C-re, akkor megint ne fusson le az onMouseOutja sem az A-nak sem a B-nek Viszont, ha a C-ről lehúzom jobbra az egert (tehát nem lessz rajta egyiken sem) akkor tünjön el C is és B is. Tahát úgy működjön mint egy simma legördülő menü, csak épp nem fussanak le a fölösleges események!
CSS
most az a kérdés, hogy lehet a CSS alapú legördülő menüt javascript-el szimulálni, szóval
üdv Csaba
Javascript menü
Tudod semmi baj nem lenne, hogy lefutnak a gyerekek eseményei hatására a szülők azonos eseményei is, ha IE-ben nem érződne annyira a JavaScript kezelésének lassúsága. Mozillában tökéletesen megy és egyébben is persze, Opera... stb de az IE miatt valahogy ki kelle kerülnöm ezt a bubbling efektust. Mondjuk IE-ben is megy csak érződik, hogy lassú, ha nagya mélység. Mondjuk a C divben is vagy egy D dív
lista vagy nemlista
2) Minden mehet az li elembe, IE-ben is, tisztességesen kell resetelni a tulajdonságait, vagy szükség esetén hackelni.
3) A legfontosabb: JS esetén kizárod a látogatóid közül azokat, akiknél nincs JS. Ez pedig a navigáció esetében nagyon kritikus, teljesen ellenjavallt. Ha tudod, csináld CSS-ben, crossbrowser JS-el _sokkal_ több szívás van.