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

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

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

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

Q&A

解決済

2回答

650閲覧

jQuery 2つのボタンのCSSを切り替える

yuuuui

総合スコア59

jQuery

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

0グッド

1クリップ

投稿2018/01/04 07:58

編集2018/01/04 08:05

###前提・実現したいこと
jQueryを使用し、2つのボタンのCSSを切り替えたいと思っています。
現在のソースコードでは2つともONの状態にできるようになってしまい、if文の書き方がわからなくなってしまっています。

###該当のソースコード

HTML

1 2<input id="test" type="button" class="btn_active btn" value="test" style="width: 100px;margin-left: 10px;" >テスト</input> 3<input id="test" type="button" class="btn_active btn" value="test" style="width: 100px;margin-left: 10px;">テスト2</input>

CSS

1.btn_active { 2 color: #fff; 3 border: 1px solid #ff5151; 4 background: #ff5151; 5} 6 7.btn{ 8 color: #333; 9 border: 1px solid #c2c2c2; 10 background: linear-gradient(#f5f5f5, #f1f1f1); 11 font-weight: bold; 12}

js

1$('#test').on('click',function(){ 2 $(this).toggleClass('btn_active'); 3 var flg = $(this).hasClass('btn_active'); 4 //ここからif文で片方がactiveになっている場合はbtn_activeクラスを外すという処理が必要(?) 5 }); 6 7 })(); 8

CSSはもともとあるのを利用するので、取り出し方に問題があるかもしれません。

jQueryやjsはあまり触ったことがなく、初心者となります。
不足部分もあるかと思いますが、宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

こんにちは。

ご質問の冒頭に、

現在のソースコードでは2つともONの状態にできるようになってしまい、

とあったので、「2つのボタンが同時にON(active)になってはいけない」というのを
実現されたいのかなと思いまして、以下のようなものを作りました。

https://jsfiddle.net/jun68ykt/beqxeLsp/2/

上記は以下のように動作します。

  • active だと背景色が #333(濃い灰色)になります。
  • 初期状態では、id="test" のほうが active
  • active ではないボタンをクリックすると、それがactiveになり、他方は active でなくなる。
  • active であるボタンをクリックしても変化しない。

参考になれば幸いです。

投稿2018/01/04 08:45

jun68ykt

総合スコア9058

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

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

yuuuui

2018/01/04 09:13

わざわざ作成してくださり、ありがとうございます。 わかりやすく、こちらも私が行いたい内容でした。 ベストアンサーはすでに選んでしまい申し訳ございません。 参考にさせていただきます。
guest

0

ベストアンサー

class は一つの要素に複数設定することができます。

html

1<input type="button" class="btn active" value="ボタン" />

これを利用すれば、例示したコードのように簡潔に書くことができます。

html

1<!DOCTYPE HTML> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 .btn { 8 border: 1px solid #999999; 9 border-radius: 4px; 10 line-height: 32px; 11 background-color: #EEEEEE; 12 } 13 .btn.active { 14 border: 1px solid #9999ff; 15 background-color: #3366ff; 16 color:#eeeeee; 17 } 18 </style> 19 </head> 20 <body> 21 <div> 22 <input type="button" class="btn" value="ボタン" /> 23 <input type="button" class="btn" value="ボタン" /> 24 <input type="button" class="btn" value="ボタン" /> 25 </div> 26 <div id="response"> 27 28 </div> 29 <script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.min.js"></script> 30 <script type="text/javascript"> 31 $(function () { 32 $('.btn').on('click', function () { 33 $(this).toggleClass('active'); 34 }); 35 }); 36 </script> 37 </body> 38</html>

投稿2018/01/04 08:18

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuuuui

2018/01/04 08:23

ありがとうございます。大変助かりました。 理解し、期待する動作をしましたのでベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問