11 of 17 menu

Napaka pri kliku na povezavo v JavaScriptu

Oglejmo si napako, povezano z nepričakovanim prehodom na povezavo. Vzemimo za primer naslednjo povezavo:

<a href="">povezava</a>

Pridobimo našo povezavo v spremenljivko:

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

Povežimo našo povezavo z obravnavalnikom klika:

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

In tukaj nas čudi presenečenje. Koda je napisana pravilno, vendar se izpis v konzoli ne pojavi. Bistvo je, da ob kliku pride do prehoda na povezavo. Ker v atributu href ni nič določenega, potem povezava preprosto vodi na trenutno stran.

To pomeni, da klik na povezavo privede do ponovnega nalaganja strani. To pomeni, da se naši podatki izpišejo v konzolo, nato se stran ponovno naloži, in konzola postane prazna.

Če natančno opazujemo, lahko vidimo, kako se v trenutku klika podatki za trenutek pojavijo v konzoli, nato pa izginejo. To je značilno znamenje te napake.

Poglejmo, kako lahko rešimo ta problem.

Prva rešitev

V href povezave je treba postaviti lojtro. To bo povzročilo, da bo povezava kazala na določeno mesto trenutne strani in ob kliku na povezavo ponovnega nalaganja ne bo. Naredimo to:

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

Druga rešitev

Bolj napreden način je preklic dejanja po privzetem z metodo 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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni