javascript4日目の初心者です。
javascriptで動的にアンケートを生成するようなページを作成しようとしているのですが、ごちゃごちゃしてきたので、クラスを使って整理中です。
ところが、クラス内でコールバック関数を使い、さらにその中でクラスのメンバー変数・メソッドを使うところでつまずいております。
当初はthisでクラスごと渡すつもりでしたが、「Uncaught TypeError: this.imageSet is not a function」というエラーになりました。おそらく、コールバック関数内では、thisが、ロードした$("#attachmentPage")の中身になるため、うまくいかないのだと思います。
ただ、どうすれば、メンバー変数を渡せるのかわからずにつまずいてます。
一旦、関数内で、別変数に格納(var that = this;)してもダメでした。
運用上はこのような使い方をしないのでしょうか?
ご教授いただけますと幸いです。
下に現在の状況を簡単にソースで再現しました。
javascript
1class Questionnaire { 2 constructor(image) { 3 this.image = image; 4 setAttachmentPage(); 5 } 6 7 setAttachmentPage() { 8 $("#attachmentPage").load("attachmentPage.html", function() { 9 this.imageSet(this.image); //<-- ここのthis.imageSetでエラー 10 }); 11 } 12 13 imageSet(image) { 14 $("#attachmentPage").find("img.thumbnail").attr("src", image); 15 : 16 : 17 } 18} 19 20$(fucntion() { 21 var A = new Questionnaire("image/a.jpg"); 22 : 23 : 24})
回答3件
あなたの回答
tips
プレビュー