11 of 17 menu

Chyba pri prechode na odkaz v JavaScripte

Poďme rozobrať chybu spojenú s neočakávaným prechodom na odkaz. Pre príklad nech je daný nasledujúci odkaz:

<a href="">odkaz</a>

Získame náš odkaz do premennej:

let link = document.querySelector('a');

Pripojíme k nášmu odkazu obslužnú rutinu kliku:

link.addEventListener('click', function() { console.log(this.textContent); });

A tu nás čaká prekvapenie. Kód je napísaný správne, avšak výstup v konzole sa neobjaví. Vec sa má tak, že pri kliknutí dôjde k prechodu na odkaz. Keďže v atribúte href nie je nič zadané, odkaz jednoducho vedie na aktuálnu stránku.

To znamená, že kliknutie na odkaz vedie k opätovnému načítaniu stránky. To znamená, že naše dáta sa vypíšu do konzoly, potom sa stránka znova načíta, a konzola sa vyprázdni.

Ak sa pozorne pozriete, môžete vidieť, ako v momente kliknutia sa dáta na okamih objavia v konzole, a potom zmiznú. To je charakteristický príznak tejto chyby.

Pozrime sa, ako je možné vyriešiť tento problém.

Prvé riešenie

Do href odkazu je potrebné zadať mriežku. To spôsobí, že odkaz bude odkazovať na konkrétne miesto aktuálnej stránky a pri kliknutí na odkaz nedôjde k opätovnému načítaniu. Urobme to:

<a href="#">odkaz</a>

Druhé riešenie

Pokročilejším spôsobom je zrušenie predvoleného správania pomocou metódy preventDefault:

link.addEventListener('click', function(event) { console.log(this.textContent); event.preventDefault(); });
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť