Ich versuche, einen Pfeil Funktion zu verwenden, und ich bin immer einen Fehler, wenn ich eine VariableWarum funktioniert meine Pfeilfunktion beim Abrufen eines bestimmten Elements nicht?
let cardColor;
let fontColor;
let toggleSidebarInfo =() => {
let colors;
$('.client-director, .person-link, .card-picture').click((evt) => {
employeeId = evt.target.id;
///// FOCUS ON THIS PART //////
colors = $(this).hasClass('card-picture') ?
(cardColor = $(this).next().css('backgroundColor'),
fontColor = $(this).next().css('color')) :
(cardColor = $(this).css('backgroundColor'),
fontColor = $(this).css('color'));
/////////////////////////
compareId(employeeId);
});
};
wenn ich cardColor
von fontColor
undefined ich log Konsole zuweisen versuchen, wie ich
.click((evt) => { . . . });
aber wenn ich es die reguläre Art und Weise
.click(function(evt) { . . . });
dann funktioniert alles einwandfrei.
Was fehlt mir?
Weil Sie sich auf 'this' beziehen? Versuchen Sie nicht, eine Pfeilfunktion zu verwenden, wo dies nicht angebracht ist. – Bergi
@Bergi also was soll ich anstelle von '$ (this)' verwenden? Ich dachte, es wäre ein besonderes Feature von jQuery. Wie eine andere Art von dies auf jQuery-Objekte angewendet – NietzscheProgrammer
Während die einfachste Lösung ist, den richtigen Funktionstyp zu verwenden, können Sie auch 'evt.currentTarget' verwenden, um das gebundene Element zu erhalten. Obwohl ich die Pfeilfunktion nicht verwenden würde, wenn Sie nicht ausdrücklich das "this" der äußeren lexikalischen Umgebung benötigen. –