const letters = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","_"];
$.each(letters, (number, letter) => {
let b = $('<button>');
b.addClass('letter-button letter letter-button-color')
.attr('data-let', letter)
.text(letter);
$('#buttons').append(b);
});
$('.letter-button').on('click',() => {
let fridgeMagnet = $('<div>');
fridgeMagnet.addClass('letter fridge-color')
.text($(this).data('let'));
console.log(this);
$('#display').append(fridgeMagnet);
});
Dies ist eine alte Übung und die Lösung mit der veralteten Version von JavaScript ist. Ich versuche, Schritt 4 und 5 zu ES6 zu aktualisieren, aber $ (this) funktioniert hier nicht. Kann mir jemand erklären, wie man den Click-Handler repariert und wie sich $ (this) von ES5 zu ES6 ändert? Wir möchten, dass die neu erstellten Schaltflächen auf dem Backround-Kühlschrankbild mit den korrekten Briefdaten erscheinen. Was ist "Daten"?
tl; dr Version: 'this' nicht tun, was Sie tun müssen, wenn Sie einen Pfeil Funktion verwenden. Verwenden Sie stattdessen 'event.currentTarget' anstelle von' this'. – JLRishe
danke. Es funktionierte. Ich denke, ich werde jetzt löschen, jeder markiert als Duplikat. –