JavaScript események (JS event magyarul)
Ebben a cikkben a JavaScript eseményeket fogjuk bemutatni. Elmagyarázzuk, hogy mik is pontosan azok az eventek, mire valók és hogy melyek a leggyakoribb JavaScript események. Természetesen minden esemény megvalósításához mutatunk szintaktikát és példát.
Mi az a JavaScript esemény (JS event)?
A JavaScript események egy esemény bekövetkezésekor történnek meg. Ezeket az eseményeket mi állíthatjuk be. Különböző események történését figyelhetjük, csak hogy párat említsünk a teljesség igénye nélkül: kattintás, görgetés, billentyűleütés.
Ezen események bekövetkezésekor különböző JavaScript utasításokat futtathatunk. Összefoglalva eseményekhez köthetjük különböző JavaScript kódok futtatását. Azaz, ha a böngésző észleli, hogy esemény megtörtént, akkor érvénybe lépteti a hozzárendelt JS kódot.
Ez azért nagyon jó, mert például figyelhetjük azt, hogy a felhasználó görget a weboldalon és ha elért a weboldal 80%-áig, akkor például elkérhetjük tőle az email címét.
JavaScript esemény, event általános szintaxisa
Ezen eventek bekövetkezését többféleképpen is lehet figyelni:
- HTML nyelvben
- JavaScript nyelvben
- JavaScript nyelvben addEventListener() metódus segítségével
HTML nyelv szintaxis:
<ELEM ESEMÉNY="JAVASCRIPT UTASÍTÁS">
Code language: HTML, XML (xml)
JavaScipt szintaxis:
ELEM.ESEMÉNY= function(){FÜGGVÉNYNÉV};
Code language: JavaScript (javascript)
JavaScript szintaktika addEventListener() metódus segítségével
ELEM.addEventListener("ESEMÉNY", function(){FÜGGVÉNYNÉV});
Code language: JavaScript (javascript)
Mind a három példában meg kell adnunk, hogy milyen esemény bekövetkezését szeretnénk figyelni, majd azt, hogy mi történjen, akkor ha bekövetkezik a figyelt esemény.
Az alábbi példákban és szintaxisoknál mi a HTML nyelv szerinti szintaktikát fogjuk alkalmazni, mert úgy gondoljuk, hogy az a leggyorsabb és a legegyszerűbb módszer. De természetesen mind a három módszerrel megoldható minden eseménykezelés.
JS eseménytípusok
Rengeteg eseménytípus létezik, de nézzünk meg párat a gyakrabban használtak közül.
Esemény elnevezése | Esemény bekövetkezése |
---|---|
onchange | ha egy HTML elem megváltozik |
onclick/ondblclick | ha a felhasználó rákattint egyszer/kétszer egy HTML elemre |
onmouseover/onmouseout | ha a felhasználó ráhúzza/lehúzza az egerét egy HTML elemre/elemről |
onkeypress | ha a felhasználó lenyom egy karaktert a billentyűzetén |
onload | ha a böngésző betöltötte a weboldalt |
oncopy/oncut/onpaste | ha a felhasználó másolt/kivágott/beillesztett valamit |
Természetesen a lista itt még nem ér véget, ezen a linken még több HTML esemény attribútumot találhattok.
JS onchange event/esemény
A JavaScript onchange esemény egy HTML elem megváltozásakor következik be. Célszerű vele például egy űrlap beviteli mezőjét figyelni.
JS onchange event/esemény szintaxis
<ELEM onchange="FÜGGVÉNYNÉV/JS.KÓD">
Code language: HTML, XML (xml)
JS onchange event/esemény példa
JavaScript + HTML kód
<!DOCTYPE html>
<html>
<body>
<p>A név beírása után kattints ki a bevitelimezőből.</p>
Írd ide a neved: <input type="text" id="nev" onchange="nevCsere()">
<script>
function nevCsere() {
document.getElementById("nev").value = "Úgyis átírom. Hahaha.";
}
</script>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
A név beírása után kattints ki a bevitelimezőből.
Írd ide a neved:
>> Próbáld ki ezt a kódot az online weboldal szerkesztőnkben. <<
JS onclick, ondblclickevent/esemény
A JavaScript onclick esemény egy HTML elemre való egyszeri kattintáskor következik be, míg az ondblclick a dupla kattintáskor. Ezeket általában gombokra szokták alkalmazni, de nyugodtan helyezhetjük őket más elemekre is, például egy szövegre.
JS onclick, ondblclick event/esemény szintaxis
<ELEM onclick/ondblclick="FÜGGVÉNYNÉV/JS.KÓD">
Code language: HTML, XML (xml)
JS onclick, ondblclick event/esemény példa
JavaScript + HTML kód
<!DOCTYPE html>
<html>
<body>
szám1: 5 <br> szám2: 3 <p id="szoveg"></p>
<button id="gomb" onclick="osszead(5,3)" ondblclick="kivon(5,3)">Egy kattintással összead, kettővel kivon.</button>
<script>
function osszead(szam1, szam2) {
document.getElementById("szoveg").innerHTML = szam1 + szam2;
}
function kivon(szam1, szam2) {
document.getElementById("szoveg").innerHTML = szam1 - szam2;
}
</script>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
szám1: 5szám2: 3
>> Próbáld ki ezt a kódot az online weboldal szerkesztőnkben. <<
JS onmouseover/onmouseout event/esemény
Az onmouseover esemény érzékeli, hogy a felhasnzáló mikor húzza az egerét egy HTML elemre, míg az onmouseout azt figyeli, hogy mikor húzza le az egerét a HTML elemről.
JS onmouseover/onmouseout event/esemény szintaxis
<ELEM onmouseover/onmouseout="FÜGGVÉNYNÉV/JS.KÓD">
Code language: HTML, XML (xml)
JS onmouseover/onmouseout event/esemény példa
JavaScript + HTML kód
<!DOCTYPE html>
<html>
<body>
<p>Húzd az egeret a gomra.</p>
<button onmouseover="rahuz(this)" onmouseout="lehuz(this)">Gomb</button>
<script>
function rahuz(elem) {
elem.style.backgroundColor = "red";
}
function lehuz(elem) {
elem.style.backgroundColor = "yellow";
}
</script>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Húzd az egeret a gomra.
>> Próbáld ki ezt a kódot az online weboldal szerkesztőnkben. <<
Itt fontos megjegyezni, hogy a „rahuz()” és a „lehuz()” függvények meghívásánál mit jelent a „this” kulcsszó. Ezzel tulajdonképen azt mondjuk meg a függvényünknek, hogy erről az elemről beszélünk, amelyből meghívtuk a függvényt. Ez azért egy kiváló megoldás, mert nem kell azzal foglalkoznunk, hogy ID alapján keressük meg a használni kívánt elemet a HTML dokumentumunkban, mint például ebben az esetben.
A példában azt állítottuk be, hogy ráhúzáskor legyen piros a gomb, lehúzáskor pedig sárga. Míg nem érünk hozzá addig az alapértelmezetten beállított gombszínt tartja meg.
JS onkeypress event/esemény
Az onkeypress event, esemény a felhasználó billentyűzetét figyeli és akkor aktiválódik, amikor a felhasználó lenyomott egy karaktert.
JS onkeypress event/esemény szintaxis
<ELEM onkeypress="FÜGGVÉNYNÉV/JS.KÓD">
Code language: HTML, XML (xml)
JS onkeypress event/esemény példa
JavaScript + HTML kód
<!DOCTYPE html>
<html>
<body>
<p>Nyomj le egy billentyűt a bevitelimezőben.</p>
<input type="text" onkeypress="billentyu()">
<p id="szoveg"></p>
<script>
function billentyu() {
var szoveg="";
document.getElementById("szoveg").innerHTML += "Leütöttél egy billentyűt.<br>";
}
</script>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Nyomj le egy billentyűt a bevitelimezőben.
>> Próbáld ki ezt a kódot az online weboldal szerkesztőnkben. <<
JS oncopy, oncut, onpaste event/esemény
Az oncopy a másolás, az oncut a kivágás, míg az onpaste a bemásolás tényét figyeli.
JS oncopy/oncut/onpaste event/esemény szintaxis
<ELEM oncopy/oncut/onpaste="FÜGGVÉNYNÉV/JS.KÓD">
Code language: HTML, XML (xml)
JS oncopy/oncut/onpaste event/esemény példa
JavaScript + HTML kód
<!DOCTYPE html>
<html>
<body>
<p>Másold ki, illeszd be vagy vágd ki az alábbi szöveget.</p>
<input type="text" oncopy="masol()" onpaste="beilleszt()" oncut="kivag()" value="Szöveg...">
<p id="szoveg"></p>
<script>
function masol() {
document.getElementById("szoveg").innerHTML = "Most kimásoltad a szöveget."
}
function beilleszt() {
document.getElementById("szoveg").innerHTML = "Most beillesztetted a szöveget."
}
function kivag() {
document.getElementById("szoveg").innerHTML = "Most kivágtad a szöveget."
}
</script>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Másold ki, illeszd be vagy vágd ki az alábbi szöveget.
>> Próbáld ki ezt a kódot az online weboldal szerkesztőnkben. <<