回答編集履歴

1

記述量ふやした

2016/06/24 11:20

投稿

kogure
kogure

スコア299

test CHANGED
@@ -35,3 +35,103 @@
35
35
 
36
36
 
37
37
  ですかね。
38
+
39
+
40
+
41
+ 解説追記
42
+
43
+ 現状:
44
+
45
+ clickに対して2つの処理を記載されています。
46
+
47
+ $('.button').on('click', function(){});addする(buttonクラスをもってる要素に対して)
48
+
49
+ $(document).on('click', function(e){});removeするもの探して消す(documentに内包されている要素すべてに対して)
50
+
51
+
52
+
53
+ どっちが先に処理されるでしょうか!?
54
+
55
+
56
+
57
+ ```javascript
58
+
59
+ //クリックされた対象の次の要素をつっこんでますよね?
60
+
61
+ var $e = $(this).next('.text');
62
+
63
+
64
+
65
+ //対象がis-showクラス持ってなかったらaddしてますよね?
66
+
67
+ if(!$e.hasClass('is-show')) {
68
+
69
+ $e.addClass('is-show');
70
+
71
+ });
72
+
73
+
74
+
75
+ $(document).on('click', function(e){//はしょってます
76
+
77
+ //.text.is-showを持っている要素に対して全部removeしてますよね?
78
+
79
+ $('.text.is-show').removeClass('is-show');
80
+
81
+ ```
82
+
83
+
84
+
85
+ var $e = $(this).next('.text');//対象詰める
86
+
87
+ $('.text.is-show').removeClass('is-show');//一回全部消す
88
+
89
+ $e.addClass('is-show');//対象の要素にだけaddする
90
+
91
+
92
+
93
+ 全部載せると
94
+
95
+ ```javascript
96
+
97
+ $('.button').on('click', function(){
98
+
99
+ var a = $('.menu').scrollTop();
100
+
101
+ var b = a + 40;
102
+
103
+ var c = a - 40;
104
+
105
+ var d = $(this).parents('.menu__item').position().top;
106
+
107
+ if(d > 60){
108
+
109
+ $('.menu').animate({scrollTop:b});
110
+
111
+ } else if (d <= 0){
112
+
113
+ $('.menu').animate({scrollTop:c});
114
+
115
+ }
116
+
117
+ var $e = $(this).next('.text');
118
+
119
+ $('.text.is-show').removeClass('is-show');
120
+
121
+ $e.addClass('is-show');
122
+
123
+ });
124
+
125
+ ```
126
+
127
+ これだけ
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+