v2.5.2
Giriş yap

JS Kısaltmalar HK.

onlywhatchess
381 defa görüntülendi
// Çalışan 
document.querySelectorAll('.dropdown-btn').forEach((e) => {
    e.addEventListener('click', function () {
        document.querySelector(`#${this.dataset.target}`).classList.toggle('dropdown-show');
    });
});
// Çalışmayan
document.querySelectorAll('.dropdown-btn').forEach((e) => {
    e.addEventListener('click', () => { // <- farklı olan kısım
        document.querySelector(`#${this.dataset.target}`).classList.toggle('dropdown-show');
    });
});

Kısa fonksiyon kullanımı neden burada işe yaramıyor?

Uncaught TypeError: Cannot read property 'target' of undefined at HTMLButtonElement.<anonymous>
Cevap yaz
Cevaplar (2)
bbera
1032 gün önce

ES6 ile gelen arrow functionlar this parametresini desteklemiyor.

Bu yuzden eventten dönen değeri bir değişken ile belirtmelisin.

ayrıca zaten derdin elemente ulaşmak ise foreachte zaten elementi dönüyorsun.

bbera
1032 gün önce

Bu arada arrow foksiyonlar ile normal fonksiyonların farklarını anlatan güzel makale var herkesin incelemesini öneririm, link burada