11 of 17 menu

Hitilafu ya Uvunjaji kiungo katika JavaScript

Wacha tuchambue hitilafu inayohusiana na uvunjaji wa kiungo usiotarajiwa. Wacha kwa mfano tupewe kiungo kifuatacho:

<a href="">kiungo</a>

Tupate kiungo chetu kwenye kutofautisha:

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

Tunganishe kichakataji kubofya kwa kiungo chetu:

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

Na hapa ndipo tunakabiliwa na mshangao. Msimbo umeandikwa vyema, hata hivyo, matokeo hayapo kwenye koni. Jambo ni kwamba, wakati wa kubofya, uvunjaji wa kiungo hufanyika. Kwa kuwa katika sifa href hakuna kitu kilioko, basi kiungo kinaelekeza tu kwenye ukurasa wa sasa.

Hii inamaanisha kuwa kubofya kiungo husababisha upakiaji upya wa ukurasa. Yaani data zetu zinachapishwa kwenye koni, kisha ukurasa unapakiwa upya, na koni hubaki tupu.

Kwa kutazama kwa makini, inawezekana kuona, jinsi wakati wa kubofya data zinaonekana kwenye koni kwa muda mfupi, kisha kutoweka. Hii ndio ishara ya kipekee ya hitilafu hii.

Wacha tuangalie jinsi inawezekana kutatua tatizo hili.

Suluhisho la kwanza

Katika href ya kiungo inahitajika kuweka alama ya sauti. Hii itasababisha kiungo kuashiria mahali maalum katika ukurasa wa sasa na wakati wa kubofya kiungo upakiaji upya hautafanyika. Wacha tufanye hivi:

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

Suluhisho la pili

Njia ya kisasa zaidi ni kufutwa kitendo cha chaguomsingi kwa kutumia mbinu preventDefault:

link.addEventListener('click', function(event) { console.log(this.textContent); event.preventDefault(); });
Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa