11 of 17 menu

Chyba přechodu na odkaz v JavaScriptu

Pojďme analyzovat chybu spojenou s neočekávaným přechodem na odkaz. Jako příklad mějme následující odkaz:

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

Získáme náš odkaz do proměnné:

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

Připojme k našemu odkazu obslužnou rutinu kliku:

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

A právě zde na nás čeká překvapení. Kód je napsán správně, ale výstup v konzoli se neobjevuje. Problém je v tom, že při kliknutí dojde k přechodu na odkaz. Protože v atributu href nic není uvedeno, odkaz jednoduše vede na aktuální stránku.

To znamená, že kliknutí na odkaz vede k obnovení stránky. To znamená, že naše data se vypíší do konzole, poté se stránka obnoví a konzole je prázdná.

Pokud se pozorně podíváte, můžete vidět, jak se v okamžiku kliknutí data na okamžik objeví v konzoli, a pak zmizí. To je charakteristický znak této chyby.

Podívejme se, jak lze tento problém vyřešit.

První řešení

Do href odkazu je třeba vložit mřížku. To povede k tomu, že odkaz bude ukazovat na konkrétní místo aktuální stránky a při kliknutí na odkaz nedojde k obnovení. Udělejme to:

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

Druhé řešení

Pokročilejším způsobem je zrušení výchozí akce pomocí metody preventDefault:

link.addEventListener('click', function(event) { console.log(this.textContent); event.preventDefault(); });
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout