私はaddEventListener arrow関数を持っています。ボタンをクリックすると、クラスを切り替えることで色が変わります。それは以下のようになります。es6 addeventlistener - 未定義の 'classList'プロパティを読み取ることができません
私のコンソールでvar clickButton = document.getElementById("clicker");
clickButton.addEventListener("click", =>() {
this.classList.toggle("modified");
}, false);
:
var clickButton = document.getElementById("clicker");
clickButton.addEventListener("click", function() {
this.classList.toggle("modified");
});
完璧に動作します
:それは面白い
Uncaught TypeError: Cannot read property 'classList' of undefined at HTMLButtonElement.
は、以下のようなスタンドJS関数にこれを変換することです。私は矢印関数のバージョンがclassListを未定義にする理由を理解していません。
classList
はどのようにES6矢印機能で動作しますか?
なぜによって引用として、これは
e.currentTarget
を使用しての代わりに、オリドリさんのコメントなどによって提案された1つの方法それを ' clickButton.classList.toggle'を直接参照してください。 – loganfsmyth
できますが、私は今Q&Aを投稿したかったのですが、「this」は矢印の機能とは違って動作することが分かっています。 – kawnah
ああ、私はあなた自身の質問に答えたことに気付かなかった。あなたは 'クラスリストはどのようにES6の矢印関数で動作するのですか? 'と尋ねたので、あなたの質問は誤解を招くようです。答えは「矢印が他の場所でどのように動作するかとまったく同じです。あなたが答えた質問は、 "なぜこのclassList呼び出しが動作しないのですか? – loganfsmyth