progateでjquery中級コースを学習しています。アコーディオン機能をつけることを学んでいるのですが、
スライド説明を見ても理解出来ないところがあるので、噛み砕いてどういう理由でこのコードが必要なんだみたいに教えて欲しいです。
javascript
1コード 2$('.faq-list-item').click(function(){ 3 var $answer=$(this).find('.answer'); 4 if($answer.hasClass('open')){ 5 $answer.removeClass('open'); 6 }else{ 7 $answer.addClass('open'); 8 } 9 });
課題はリンク内容です。
リンクの質問文に書かれている『回答を得て、まだ理解出来ずにいる点』を見て下さい。
『$answerにはopenクラスがないから、hasClassでtrue,falseをそもそも判定できない(trueがない)と考えることしか理解出来ないです』。
まず、アコーディオンをつけるとクリックしたら隠れていた内容が出てくることは理解出来ています。
1、
var $answer=$(this).find('.answer');
の部分で理解の仕方が正しいか教えて下さい
理解の仕方 (変数varがあるのは.answerクラスが複数あるから。)
2、
全く理解出来ないと感じる部分
hasClassメソッドは$answerにopenクラスがあるかないかを判定するものだけど、
今回、$answerにはどこのコードを見てもない。だからif文で判定したとしても、全部openがないパターンしかない。
そのため、openがあればremoveClassをとっての部分は成立しないんじゃ?と感じる。理解出来ないです。
この説明を見たんですが理解出来なかったです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/02 02:29
2019/06/02 04:31
2019/06/02 04:42