teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードを追加

2016/10/05 03:26

投稿

popobot
popobot

スコア6588

answer CHANGED
@@ -1,2 +1,15 @@
1
1
  clickイベントを使っているので、radio2を選択した時にはradio2に対する処理しか動かないので、radio1のclassは変わらないんだと思います。
2
- なので、radio2をclickされた場合、nameが同じすべてのinputに対して、checkedを確認してclassを変更する処理を書けばいいと思います。
2
+ なので、radio2をclickされた場合、nameが同じすべてのinputに対して、checkedを確認してclassを変更する処理を書けばいいと思います。
3
+
4
+ 軽くやってみたので参考に(checkbox側にname属性がないので、checkboxでは動かないですが)
5
+ ```javascript
6
+ $(function() {
7
+ var $check = $('input[type="checkbox"][data-target^="#icon"], input[type="radio"][data-target^="#icon"]')
8
+ $check.on("click", function() {
9
+ $('input[name='+$(this).attr('name')+']').each(function(i, elem) {
10
+ $flag = ($(elem).prop('checked')) ? 'addClass' : 'removeClass';
11
+ $($(elem).attr('data-target'))[$flag]('selected');
12
+ });
13
+ });
14
+ });
15
+ ```