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
aelemre működik a:hoverpszeudo 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#navAccountelem fölé ér a mutató eszköz akkor a benne lévő összesulelemdisplaystí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 azabír aktív maradni?)Megnéztem :active-val is
:focus
aaddig aktív, amíg a fókusz rajta van. De erre a:focuskell, nyilván... Az viszontdiv-re nem játszik.UPDATE: Ha
:focusés:activeis be van állítva, azaelőbb aktív, aztán fókuszált (ahogy kell), azinputviszont ilyenkor az aktív állapotot kihagyja (:focusnélkül rendesen felvillantja).<!DOCTYPE html PUBLIC
Rosszul emlékszem, hogy a
jól emlékszel
e.targethamiska akkor biztosak lehetünk benne, hogy az áldott jó Explorer-el van dolgunk és adjuk atargetváltozóhoz ae.srcElementtulajdonsá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.eventami 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
fvfü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. :)