回答編集履歴

1

ちょっと改良。

2018/11/24 18:54

投稿

kei344
kei344

スコア69407

test CHANGED
@@ -4,15 +4,15 @@
4
4
 
5
5
  document.querySelector( '#sw' ).onclick = e => {
6
6
 
7
- if ( e.target.tagName !== 'LI' ) return;
7
+ if ( e.target === e.currentTarget ) return;
8
8
 
9
- $li.forEach( n => n.classList.remove( 'mizu' ) );
9
+ let item = e.target.closest( 'li' );
10
10
 
11
- e.target.classList.add( 'mizu' );
11
+ $li.forEach( n => n.classList[ item === n ? 'add' : 'remove' ]( 'mizu' ) );
12
12
 
13
- };
13
+ }; // 編集前のコードがli要素の中にあるHTML要素に対応できていなかったのを修正
14
14
 
15
- ```**動くサンプル:**[https://jsfiddle.net/2n8Lw4eu/](https://jsfiddle.net/2n8Lw4eu/)
15
+ ```**動くサンプル:**[https://jsfiddle.net/2n8Lw4eu/2/](https://jsfiddle.net/2n8Lw4eu/2/)
16
16
 
17
17
 
18
18
 
@@ -29,3 +29,9 @@
29
29
  【Document.querySelectorAll() - Web API | MDN】
30
30
 
31
31
  [https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll](https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll)
32
+
33
+
34
+
35
+ 【Element.closest() - Web API | MDN】
36
+
37
+ [https://developer.mozilla.org/ja/docs/Web/API/Element/closest](https://developer.mozilla.org/ja/docs/Web/API/Element/closest)