回答編集履歴

1

コードを追加

2016/10/05 03:26

投稿

popobot
popobot

スコア6586

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