回答編集履歴
1
ちょっと改良。
answer
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
```JavaScript
|
2
2
|
const $li = document.querySelectorAll( '#sw>li' );
|
3
3
|
document.querySelector( '#sw' ).onclick = e => {
|
4
|
-
if ( e.target
|
4
|
+
if ( e.target === e.currentTarget ) return;
|
5
|
-
$li.forEach( n => n.classList.remove( 'mizu' ) );
|
6
|
-
e.target.
|
5
|
+
let item = e.target.closest( 'li' );
|
6
|
+
$li.forEach( n => n.classList[ item === n ? 'add' : 'remove' ]( 'mizu' ) );
|
7
|
-
};
|
7
|
+
}; // 編集前のコードがli要素の中にあるHTML要素に対応できていなかったのを修正
|
8
|
-
```**動くサンプル:**[https://jsfiddle.net/2n8Lw4eu/](https://jsfiddle.net/2n8Lw4eu/)
|
8
|
+
```**動くサンプル:**[https://jsfiddle.net/2n8Lw4eu/2/](https://jsfiddle.net/2n8Lw4eu/2/)
|
9
9
|
|
10
10
|
---
|
11
11
|
|
@@ -13,4 +13,7 @@
|
|
13
13
|
[https://developer.mozilla.org/ja/docs/Web/API/Document/querySelector](https://developer.mozilla.org/ja/docs/Web/API/Document/querySelector)
|
14
14
|
|
15
15
|
【Document.querySelectorAll() - Web API | MDN】
|
16
|
-
[https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll](https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll)
|
16
|
+
[https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll](https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll)
|
17
|
+
|
18
|
+
【Element.closest() - Web API | MDN】
|
19
|
+
[https://developer.mozilla.org/ja/docs/Web/API/Element/closest](https://developer.mozilla.org/ja/docs/Web/API/Element/closest)
|