JavaScript-daky çykgytly salgyma geçiş ýalňyşlygy
Bizde bir salgymyz bar bolsun:
<a href="">salgym</a>
Salgymyzy üýtgeýjide alyň:
let salgym = document.querySelector('a');
Salgymyza basylma hereketini işleýji birleşdireris. Bu ýagdaýda sahypany täzeden ýüklemekden gaça durmak üçin salgyma geçişi ýatyryň:
salgym.addEventListener('click', function(waka) {
console.log(this.textContent);
waka.preventDefault();
});
Gözlenilmedik hereketlerden özümizi doly gorap aldyk ýaly görünýär. Aslynda şeýle däl. Sebäbi sintaktiki ýalňyşlyk ýüze çykanda JavaScript kodi ýerine ýetirilmez, salgymy blokirlemek işlemez we salgyma geçiş amala aşyr.
Bu ýagdaýda biz kodyň ýerine ýetiriliş netijesini hem, konsoldaky ýalňyşlygy hem görmeris, sebäbi sahypa täzeden ýüklenjek. Geliň bilelikde koda ýalňyşlyk edeliň we amaly taýdan anyklaýalyň:
salgym.addEventListener('click', function(waka) {
thiss.textContent = 'tekst'; // sintaktiki ýalňyşlyk
waka.preventDefault();
});
Bu meseläniň aýratyn nyşany bar: salgyma basylýan wagtda konsola seretsek, bir sany syn ýaly konsolda gyzyl ýalňyşlygy göreris, ýagny derrew ýok bolup gider.
Elbette, ýalňyşlygyň teksti taryp okap bilmeris,
bu bolsa ony gözlemegi kynlaşdyrýar. Emma bir aýlawly
usul bar. Salgymyň href atributyna reşetke goýmaly.
Bu ýagdaýda salgyma geçiş bolmaz we konsola atylan
ýalňyşlygy göreris:
<a href="#">salgym</a>