onClick event kezelése
Ha mondjuk egy táblázat elemeire ráteszek egy onclick-t, a meghívott függvény értesülhet valahogyan mondjuk az adott elem ID-jéről?
Kicsit konkrétabban:
Mindezt úgy, hogy IE7-ben is működjön és a meghívott fv paraméter listáján ottmaradjon az a bizonyos event object.
(ha nem adok át paramétert, akkor úgy tudom, automatikusan kap egy Event típusú objektumot, aminek pl. FF alatt van egy currentTarget attribútuma, de ez IE alatt nem működik, ha meg a hívásba beírom az id-t is, akkor mi lesz az eventtel?)
■ Kicsit konkrétabban:
<script>
function fv(){
... itt van-e lehetőség lekérni azt az "x1"-t? ...
}
</script>
...
<table>
...
<td id="x1" onClick="fv()"> ... </td>
function fv(){
... itt van-e lehetőség lekérni azt az "x1"-t? ...
}
</script>
...
<table>
...
<td id="x1" onClick="fv()"> ... </td>
Mindezt úgy, hogy IE7-ben is működjön és a meghívott fv paraméter listáján ottmaradjon az a bizonyos event object.
(ha nem adok át paramétert, akkor úgy tudom, automatikusan kap egy Event típusú objektumot, aminek pl. FF alatt van egy currentTarget attribútuma, de ez IE alatt nem működik, ha meg a hívásba beírom az id-t is, akkor mi lesz az eventtel?)
Tudtommal, ha egy függvényt
Csak azért vagyok kicsit bizonytalan, mert ezer éve nem írtam HTML kódba ilyen módon eseménykezelőt, mindig utólag rendelem hozzá az adott elemhez. Szóval ki kell próbálni.
Tankjú, kipróbáltam, nem
A meghívott függvényben az alert(this.id); azt mondja, hogy undefined, az alert(this); szerint egy window object a this.
(legalábbis FF-ban)
document.getElementById('x1')
document.getElementById('x1').onclick = fv;
így működik, ráadásul szebb is. HTML-be ne égess be függvényhívásokat, mint ahogy stílusokat sem illik.
Hmmmm... Tény, szebbnek
Tény, szebbnek tűnik.
De ha rengeteg sorhoz kell hozzárendelni egy-egy onclick action-t? Kicsit lassíthatja az oldal működését, ha egy (költői túlzás következik! ;-) ) egy ezer soros táblázat minden egyes sorához így rendelem hozzá, nem?
Arról nem beszélve, hogy ebben az esetben az onclick-et beállító javascript kódnak is konkrétan tudnia kell, hogy milyen ID-ket használok és a PHP kódnak is, ami előállítja magát a listát. (?? bár ha jobban meggondolom, az ID-ket akár a JS is osztogathatja, a PHP-nek nem kell ismernie - így marad a sebesség kérdése)
bubbling
Nem új cikk, de érdemes elolvasni
Köszi...
részben sok érdekes dolog van benne, amikre nem gondoltam volna.
Facebook
CSS - a pontos módszert most
egyes böngészőkön nem csak az
a
elemre működik a:hover
pszeudo osztály hanem minden másra is, így lehetséges.IE6
A forráskódból nem derült ki,
overflow
Elemezd a Facebook
A div érzékeli :hover eseményt és a benne levő ul láthatóságát változtatja.
Jogos
<li id="navAccount"> <a
li#navAccount
elem fölé ér a mutató eszköz akkor a benne lévő összesul
elemdisplay
stílus tulajdonságátblock
-ra állítja.Köszönöm
getElementById
-vel állítgatni. Csak legalább arra is futotta volna Zuckerbergéknek, hogy a leveleket hajlandó legyen JS nélkül betölteni...Túlbonyolítottam
:hover
-t pl. táblázatsorra, de most valamiért átsiklottam felette. Köszi!Megnéztem
:active
-val is (ugye az onclick mintájára), de valamiért csak egy pillanatra marad az. Ötlet? (div
-ről van szó, talán csak aza
bír aktív maradni?)Megnéztem :active-val is
:focus
a
addig aktív, amíg a fókusz rajta van. De erre a:focus
kell, nyilván... Az viszontdiv
-re nem játszik.UPDATE: Ha
:focus
és:active
is be van állítva, aza
előbb aktív, aztán fókuszált (ahogy kell), azinput
viszont ilyenkor az aktív állapotot kihagyja (:focus
nélkül rendesen felvillantja).<!DOCTYPE html PUBLIC
Rosszul emlékszem, hogy a
jól emlékszel
e.target
hamiska akkor biztosak lehetünk benne, hogy az áldott jó Explorer-el van dolgunk és adjuk atarget
változóhoz ae.srcElement
tulajdonságát. Egyébként a régebbi Explorer verzók nem adnak át semmit a függvénynek amiket az elemek attribútumaiban hívsz meg bizonyos eseményeknél. Explorerben az esemény objektumawindow.event
ami mindig a utolsó bekövetkezett eseményt tárolja. Tehát ezt az attribútumban át kel adni argumentumként. De ha nem adod át az se baj mert lehet azt is csinálni, hogy:Bocs, kicsit szétszórt vagyok
Ez a megoldás nem jó
Nem igazán
Egyébként picit feljebb lapozva ott a tökéletes megoldás. (3. és asszem, a 7. hozzászólás)
Ezt nem értem...
Lehet, hogy rosszul emlékeztem?
Ki akartam próbálni valamit és már ott elakadtam, hogy FF alatt nem kapott paramétert a meghívott függvény.
Miért
fv
függvényt. Ezért is kell kerülni azt, hogy a HTML-be kerüljön a működést leíró rész. A JavaScript kódnak a JavaScript kódban a helye, nem a HTML-ben, és akkor tiéd a működés feletti irányítás.Nem tudom, eredetileg azt nem
Már csak azt lenne jó tudni, hogy ennyire rosszul emlékeztem vagy valami tutorialban szerepelt hibásan. Na mindegy, nincs jelentősége, csak meglepett itt hajnalok hajnalán. :)