Hirdetés
- ASUS notebook topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Kezdő fotósok digitális fényképei
- Titán TUF módra: teszten az NVIDIA GeForce RTX 5070 Ti!
- Gaming notebook topik
- OLED TV topic
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Milyen CPU léghűtést vegyek?
- Milyen monitort vegyek?
Új hozzászólás Aktív témák
-
fordfairlane
veterán
válasz
trisztan94 #10512 üzenetére
Egyszerűbb, de jobbnak nem jobb.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10512 üzenetére
Attól függ, mi a cél (nem "jobb", csak más a hatás).
Itt meséltem el pont neked korábban az event.preventDefault() és return false közötti különbséget:
http://prohardver.hu/tema/jquery_kerdesek/hsz_2110-2110.htmlItt van egy nagyon jó szemléltető példa:
http://css-tricks.com/return-false-and-prevent-default/
--> http://css-tricks.com/examples/ReturnFalse/lényeg:
Van két <div>-doboz (legyen ez egy-egy szülődoboz), amibe bele van dobálva egy-egy link (<a>); de mivel a link display:block; stílusú, az is kvázi egy-egy gyerekdoboz.
A burkoló szülődobozra kattintáskor be van állítva, hogy a háttér változzon pirosra. Aztán a gyerekelemek (egy-egy link, <a>-elem) kattintás eseménye is le van kezelve: kattintáskor a feladat, hogy a gyerekdoboz (a linkek) háttere zöldre változzon. De a linknek ugye van egy alapértelmezett viselkedése a böngészőkben, az, hogy valamilyen hivatkozásra ugrik, legyen az adott betöltött lapon belüli hivatkozás (anchor - ha nincs olyan anchor a lapon, akkor csak a lap tetejére ugrik), vagy másik URL-re hivatkozás (frissítés érdekében persze lehet ugyanaz az URL is); így az alapértelmezett viselkedést felül kell bírálni, hogy ne ugráljon sehova.
A linkek alapértelmezett lekezelésének felülbírálására vonatkozik az event.preventDefault(), az event.stopPropagation(), valamint a return false. A return false tartalmazza az event.stopPropagation()-t, valamint az event.preventDefault()-ot is.
Az event.preventDefault() segítségével megakadályozzuk a böngésző alapértelmezett műveletének végrehajtását.
Az event.stopPropagation() segítségével megakadályozzuk, hogy az esemény bekövetkezése kvázi buborékként felússzon a DOM-fában, tehát hogy a szülők is értesüljenek az esemény bekövetkezéséről.A példára visszatérve látható a gyakorlati haszna is.
Bármelyik gyerekdobozra kattintasz, a háttér zöldre változik. Itt jön a különbség: a bal oldali gyerekdoboznál az eseménykezelőben csak e.preventDefault();-ot, jobb oldalt return false;-t használ. Különbség: a bal oldalon felszivárog az esemény a szülőbe is, így a szülő click eseménykezelője is tud mit kezdeni az eseménnyel, így a szülődoboz háttérszíne is megváltozik, a példában pirosra. Jobb oldalt megakadályoztuk az implicit event.stopPropagation() segítségével, hogy a szülő is értesüljön a click eseményről, így a szülőjének a doboza nem változik piros hátterűvé.Remélem, nagyjából érthető.
Új hozzászólás Aktív témák
- ASUS TUF 17 QHD 240hz RTX4070
- BESZÁMÍTÁS! ASUS VP278H 27 FHD 60Hz 1ms monitor garanciával hibátlan működéssel
- BESZÁMÍTÁS! AOC 24G2SPAE 24 FHD 165Hz 1ms monitor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Samsung S7 S27A700NWP 27 UHD 60Hz 5ms monitor garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS VP28UQG 27 UHD 60Hz 1ms monitor garanciával hibátlan működéssel