JavaScript'те шилтемени өтүүгө тыюу салуу катасы
Бизде шилтеме болсун:
<a href="">шилтеме</a>
Шилтемени өзгөрмөгө алалы:
let link = document.querySelector('a');
Шилтемени чыкылдатуу үчүн иштетүүчү функцияны байлап көрөлү. Бетти кайра жүктөөдөн сактануу үчүн шилтеме аркылуу өтүүнү токтотолу:
link.addEventListener('click', function(event) {
console.log(this.textContent);
event.preventDefault();
});
Биздин күтүлбөгөн аракеттерден толук камсыз болгонубуздай сезилет. Чындыгында бул андай эмес. Себеби, синтаксистик ката пайда болгондо, JavaScript коду аткарылбай калат, шилтемени бөгөттөө ишке ашпайт жана ал аркылуу өтүү ишке ашат.
Бул учурда биз коду аткаруунун натыйжасын да, консолдогу катаны да көрбөйбүз, анткени барак кайра жүктөлөт. Келгиле, кодуда каалагандай ката кетирип, практикада текшерип көрөлү:
link.addEventListener('click', function(event) {
thiss.textContent = 'текст'; // синтаксистик ката
event.preventDefault();
});
Бул маселе мүнөздүү белгиге ээ: эгерде шилтемени чыкылдаткан учурда консолго карасак, консолдо кызыл түстөгү катаны бир аз көрүп, анан дээрлик дароо жоголуп кеткенине көзүбүз жетет.
Албетте, катанын текстин окуп чыгууга бизде убакыт жетпейт,
бул аны издөөнү бир топ татаалдаштырат. Бирок, бир айла бар.
Шилтеменин href атрибутуна решетка белгисин (#) коюу керек.
Бул учурда шилтеме аркылуу өтүү болбойт жана биз консолго түшкөн
катаны көрө алабыз:
<a href="#">шилтеме</a>