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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

818閲覧

Jqueryでcssのfocusを設定する方法

maguzo

総合スコア57

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/07/29 07:57

下記のようなコードで、.main_textareaにfocusされている時、radioボタンの値を取得し
Aであれば.main_textareaが.focus中にborder-colorがred
Bであれば.main_textareaが.focus中にborder-colorがblue
を実装したいと考えております。

下記のようなコードを書いてもfocusのタイミングによって処理するため、意図した処理が実装できません。
イメージとしては.main_textareaがfocusされたら、同時にradioボタンの値を取得して、
それに応じてborder-colorが振り分けられるものを想定しております。
jqueryでcssを指定する際に、
if (get_val=="cof") {
$(this).css(':focus','border-color','#ff0000');
})
}
のように記載できないため、方法を探しております。
よろしくお願い申し上げます。

html

1<label> 2 <input type="radio" name="radio" checked value="A"/> 3 <div class="front-end boxs"> 4 <span>A</span> 5 </div> 6</label> 7 8<label> 9 <input type="radio" name="radio" value="B"/> 10 <div class="back-end boxs"> 11 <span><B</span> 12 </div> 13</label> 14 15<label>Text</label> 16<textarea class="main_textarea" rows="3"></textarea>

Jquery

1$(function(){ 2 $('.main_textarea').on('focus',function(){ 3 let get_val=$('input[name=radio]:checked').val(); 4 if (get_val=="A") { 5 $(this).focus(function(){ 6 $(this).css('border-color','red'); 7 }) 8 } 9 if (get_val=="B") { 10 $(this).focus(function(){ 11 $(this).css('border-color','blue'); 12 }) 13 } 14 }) 15})

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

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

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

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

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

guest

回答1

0

ベストアンサー

JavaScript 使うなら :focus 使わなくても、focus イベントで class を付与、blur イベントで class を除去するだけで良いと思います。:focus を使おうとすると <style> 要素を作らなければならないと思いますのでめんどくさいですよ。

それか、ラジオボタンの選択状況によって <label> に class を付与して、一般兄弟結合子(~) を使うとか。

css

1.label-a--checked ~ .main_textarea:focus { 2 border-color: red; 3} 4 5.label-b--checked ~ .main_textarea:focus { 6 border-color: blue; 7}

投稿2018/07/29 11:56

yhg

総合スコア2161

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

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

maguzo

2018/07/29 12:51

コメントありがとうございます。 申し訳ございません、セレクタで-や--を見たことがなく、「セレクタ ハイフン」等で検索しても出てこないのですが、どこかに仕様等ございますでしょうか?
yhg

2018/07/29 13:21

「--」 は BEM の命名規則です。「CSS BEM」とかで検索するとたくさん記事が出てくると思います。 特に必須という訳でもないのでお好きなクラス名で良いですよ。
maguzo

2018/07/29 14:36

ありがとうございます。ぜひこの機会に学んでみたいと思います。 ちなみにですがclassのadd removeで目的は達成できました。 御礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問