前提・実現したいこと
イベントに応じて対象にクラスを追加・削除する、クラスを作成しているのですが、以下のエラーが出て解決できません。
どなたかご教授ください。
発生している問題・エラーメッセージ
javascript
1main.js:55 Uncaught TypeError: Cannot read property 'classList' of undefined 2at HTMLButtonElement.<anonymous> (main.js:55) 3 4 tglCls(doEvent, editCls) { 5 this.eventTarget.addEventListener(doEvent, function () { 6 this.editTarget.classList.toggle(editCls); //←ここで、エラーが出ます 7 }); 8 } 9
該当のソースコード
javascript
1// main.js 今回はどちらもmain.js内での作業ですので、import,exportは必要ないと思われます。 2 3const mobile = new EditClass('#header__mobile-menu__button','#global-container'); 4mobile.tglCls('click', 'menu-open'); 5 6 7// main.js 8class EditClass { 9 // eventTarget:イベント発火対象、editTarget:クラスを追加・削除する対象 10 constructor(eventTarget, editTarget) { 11 this.eventTarget = document.querySelector(eventTarget); 12 this.editTarget = document.querySelector(editTarget); 13 } 14 15 // doEvent:イベントの種類(click,mouseover...etc)、editCls:実際に追加・削除するクラス名 16 tglCls(doEvent, editCls) { 17 this.eventTarget.addEventListener(doEvent, function () { 18 this.editTarget.classList.toggle(editCls); 19 }); 20 } 21 addCls(doEvent, editCls) { 22 this.eventTarget.addEventListener(doEvent, function () { 23 this.editTarget.classList.add(editCls); 24 }); 25 } 26 removeCls(doEvent, editCls) { 27 this.eventTarget.addEventListener(doEvent, function () { 28 this.editTarget.classList.remove(editCls); 29 }); 30 } 31}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/08 08:24