11 of 17 menu

Грешка при кликнување на врска во JavaScript

Ајде да ја разгледаме грешката поврзана со неочекуваното кликнување на врска. Нека за пример е дадена следнава врска:

<a href="">link</a>

Ќе ја добиеме нашата врска во променлива:

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

Ќе додадеме обработувач за клик на нашата врска:

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

И тука нè чека изненадување. Кодот е напишан правилно, сепак, излезот во конзолата не се појавува. Работата е во тоа што при кликнување се случува премин по врската. Бидејќи во атрибутот href ништо не е наведено, врската едноставно води до тековната страница.

Ова значи дека кликнувањето на врската води до вчитување на страницата. Односно нашите податоци се прикажуваат во конзолата, потоа страницата се вчитува, и конзолата станува празна.

Ако внимателно се погледне, тогаш може да се види како во моментот на кликнување податоците се појавуваат во конзолата за момент, а потоа исчезнуваат. Ова е карактеристичен знак за оваа грешка.

Ајде да погледнеме како може да се реши овој проблем.

Прво решение

Во href на врската треба да се стави тараба (#). Ова ќе доведе до тоа што врската ќе покажува на одредено место на тековната страница и при кликнување на врската нема да има вчитување. Ајде да го направиме ова:

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

Второ решение

Понапреден начин е откажување на стандардното дејство со помош на методот preventDefault:

link.addEventListener('click', function(event) { console.log(this.textContent); event.preventDefault(); });
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј