質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

908閲覧

スライドの次へボタンと前へボタンに使うjQueryで分からないところがあります

tanakashouzoux

総合スコア52

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/08/10 03:37

編集2017/08/10 04:25

HTML

1コード 2 3 <div class="slide-wrapper"> 4 <h2 class="slide-title"></h2> 5 <div class="change-btn-wrapper"> 6 <div class="change-btn prev-btn">← 前へ</div> 7 <div class="change-btn next-btn">次へ →</div> 8 </div> 9 <ul class="slides"> 10 <li class="slide active"><img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/jquery/advanced/spring.jpg"></li> 11 <li class="slide"><img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/jquery/advanced/rainy.jpg"></li> 12 <li class="slide"><img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/jquery/advanced/autumn.jpg"></li> 13 <li class="slide"><img src="https://s3-ap-northeast-1.amazonaws.com/progate/shared/images/lesson/jquery/advanced/winter.jpg"></li> 14 </ul> 15 <div class="index-btn-wrapper"> 16 <div class="index-btn">1</div> 17 <div class="index-btn">2</div> 18 <div class="index-btn">3</div> 19 <div class="index-btn">4</div> 20 </div> 21 </div>

jQuery

1コード 2 3 $('.change-btn').click(function() { 4 5 var $displaySlide = $('.active'); 6 7 $displaySlide.removeClass('active'); 8 9 if ($(this).hasClass('next-btn')) { 10 $displaySlide.next().addClass('active'); 11 } else { 12 $displaySlide.prev().addClass('active'); 13 } 14 });

次へボタンと前へボタンに使うHTMLとjQueryのコードです

質問①
「$displaySlide.removeClass('active');」から
「$displaySlide = $('.active')」の「.active」が取り除かれて「$displaySlide = $('')」になり
「 if ($(this).hasClass('next-btn')) {
$displaySlide.next().addClass('active');
} else {
$displaySlide.prev().addClass('active');
}
」中の「$displaySlide」には「$('')」を入れて考えれば良いのでしょうか?

質問②
もし質問①の考えで合っているのであれば「$('')」に「.nextメソッド」「.prevメソッド」を使うことになるのは変じゃないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2017/08/10 04:19

どちらも1のようですが、後者が2でしょうか?
tanakashouzoux

2017/08/10 04:21

ありがとうございます!修正しました!
kei344

2017/08/10 06:18

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況を質問文に追記ください。
tanakashouzoux

2017/08/12 23:37

ありがとうございます。一旦解決済みにしたいと思いますm(__)m
guest

回答1

0

ベストアンサー

「$displaySlide = $('.active')」の「.active」が取り除かれて「$displaySlide = $('')」になり

ええと、言葉遊びではないので$('')にはなりません。
'active'というクラスがあった要素ノード(を指すjQueryオブジェクト)が依然として保持されています。

投稿2017/08/10 04:25

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanakashouzoux

2017/08/10 04:31

わざわざご回答ありがとうございます 当方勉強し始めの初心者でして、変な質問で申し訳ありません(;´・ω・) 「'active'というクラスがあった要素ノード(を指すjQueryオブジェクト)が依然として保持されています」とは一体どういったことなのでしょうか? 「$displaySlide.removeClass('active');」は「$displaySlide = $('.active')」から「.active」を取り除く(←removeClass(active))という意味だと認識していたのですが、間違っておりますでしょうか?
x_x

2017/08/10 04:43

変数の中身を変えるものではなく、DOM操作(<li class="slide active"></li>を<li class="slide"></li>)をしているものです。 $displaySlideが、その要素(<li class="slide"></li>)を指していることは変わらないのです
tanakashouzoux

2017/08/10 04:51

何度も解答して頂きありがとうございますm(__)m 今回の$displaySlideは「$('.active')」ではなく「<li class="slide active"></li>」を指しているのでしょうか? そうなのであればどこから「<li class="slide active"></li>」を指していると見分けるのでしょうか?
x_x

2017/08/10 05:02

説明難しいですね。こんな風に考えたことはないので。 さて、クリックされるとfunctionの中身が上から順に実行されていきますが、$displaySlideに代入されるのは一回だけです。 var $displaySlide = $('.active'); これ以外に変更されることはありません。 このとき'active'を選び取りますが、その後'active'でなくなっても関係ないのです。
tanakashouzoux

2017/08/10 05:16

わざわざたくさん回答して頂きありがとうございます! 私が不勉強すぎました・・・ この辺の事を解説しているサイトや書籍がありましたらご教示頂けないでしょうか?
tanakashouzoux

2017/08/10 05:46

ご丁寧にありがとうございます 私はとんでもない田舎に住んでおりまして書籍を中心に勉強しているのですが分からないところが聞けず悩んでおりました 今回回答頂き本当にうれしかったです! ありがとうございました! また機会がありましたらご教示下さいませm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問