File tree Expand file tree Collapse file tree 4 files changed +45
-45
lines changed
2-ui/2-events/03-event-delegation/2-sliding-tree Expand file tree Collapse file tree 4 files changed +45
-45
lines changed Original file line number Diff line number Diff line change 1- The solution has two parts .
1+ Solusi terbagi atas 2 bagian .
22
3- 1 . Wrap every tree node title into ` <span> ` . Then we can CSS-style them on ` :hover ` and handle clicks exactly on text, because ` <span> ` width is exactly the text width (unlike without it).
4- 2 . Set a handler to the ` tree ` root node and handle clicks on that ` <span> ` titles .
3+ 1 . Bungkus setiap node pada pohon kedalam ` <span> ` . Kemudian kita bisa menambahkan ` :hover ` dengan CSS-style dan menanggani klik tepat pada teks, karena lebar ` <span> ` sama dengan lebar tulisan (lebar tidak sama jika tidak menggunakan ` <span> ` );
4+ 2 . Atur sebuah penangan ( _ handler _ ) ke ` tree ` akar dari node dan tanggani setiap klik pada judul ` <span> ` .
Original file line number Diff line number Diff line change 1717< body >
1818
1919 < ul class ="tree " id ="tree ">
20- < li > Animals
20+ < li > Hewan
2121 < ul >
22- < li > Mammals
22+ < li > Mamalia
2323 < ul >
24- < li > Cows </ li >
25- < li > Donkeys </ li >
26- < li > Dogs </ li >
27- < li > Tigers </ li >
24+ < li > Sapi </ li >
25+ < li > Keledai </ li >
26+ < li > Anjing </ li >
27+ < li > Harimau </ li >
2828 </ ul >
2929 </ li >
30- < li > Other
30+ < li > Lain
3131 < ul >
32- < li > Snakes </ li >
33- < li > Birds </ li >
34- < li > Lizards </ li >
32+ < li > Ular </ li >
33+ < li > Burung </ li >
34+ < li > Kadal </ li >
3535 </ ul >
3636 </ li >
3737 </ ul >
3838 </ li >
39- < li > Fishes
39+ < li > Ikan
4040 < ul >
41- < li > Aquarium
41+ < li > Akuarium
4242 < ul >
43- < li > Guppy </ li >
44- < li > Angelfish </ li >
43+ < li > Gupi (ikan seribu) </ li >
44+ < li > Ikan bidadari </ li >
4545 </ ul >
4646 </ li >
47- < li > Sea
47+ < li > Laut
4848 < ul >
49- < li > Sea trout </ li >
49+ < li > Trout laut </ li >
5050 </ ul >
5151 </ li >
5252 </ ul >
5353 </ li >
5454 </ ul >
5555
5656 < script >
57- // move all text into <span>
58- // they occupy exactly the place necessary for the text ,
57+ // pindahkan semua teks kedalam <span>
58+ // mereka menempati tempat yang tepat diperlukan untuk teks ,
5959 for ( let li of tree . querySelectorAll ( 'li' ) ) {
6060 let span = document . createElement ( 'span' ) ;
6161 li . prepend ( span ) ;
62- span . append ( span . nextSibling ) ; // move the text node into span
62+ span . append ( span . nextSibling ) ; // memindahkan node teks ke dalam span
6363 }
6464
65- // catch clicks on whole tree
65+ // tangkap klik pada keseluruhan pohon ( tree)
6666 tree . onclick = function ( event ) {
6767
6868 if ( event . target . tagName != 'SPAN' ) {
6969 return ;
7070 }
7171
7272 let childrenContainer = event . target . parentNode . querySelector ( 'ul' ) ;
73- if ( ! childrenContainer ) return ; // no children
73+ if ( ! childrenContainer ) return ; // tidak ada elemen bawah
7474
7575 childrenContainer . hidden = ! childrenContainer . hidden ;
7676 }
Original file line number Diff line number Diff line change 66< body >
77
88 < ul class ="tree " id ="tree ">
9- < li > Animals
9+ < li > Hewan
1010 < ul >
11- < li > Mammals
11+ < li > Mamalia
1212 < ul >
13- < li > Cows </ li >
14- < li > Donkeys </ li >
15- < li > Dogs </ li >
16- < li > Tigers </ li >
13+ < li > Sapi </ li >
14+ < li > Keledai </ li >
15+ < li > Anjing </ li >
16+ < li > Harimau </ li >
1717 </ ul >
1818 </ li >
19- < li > Other
19+ < li > Lain
2020 < ul >
21- < li > Snakes </ li >
22- < li > Birds </ li >
23- < li > Lizards </ li >
21+ < li > Ular </ li >
22+ < li > Burung </ li >
23+ < li > Kadal </ li >
2424 </ ul >
2525 </ li >
2626 </ ul >
2727 </ li >
28- < li > Fishes
28+ < li > Ikan
2929 < ul >
30- < li > Aquarium
30+ < li > Akuarium
3131 < ul >
32- < li > Guppy </ li >
33- < li > Angelfish </ li >
32+ < li > Gupi (ikan seribu) </ li >
33+ < li > Ikan bidadari </ li >
3434 </ ul >
3535 </ li >
36- < li > Sea
36+ < li > Laut
3737 < ul >
38- < li > Sea trout </ li >
38+ < li > Trout laut </ li >
3939 </ ul >
4040 </ li >
4141 </ ul >
Original file line number Diff line number Diff line change @@ -2,13 +2,13 @@ importance: 5
22
33---
44
5- # Tree menu
5+ # Menu pohon ( _ tree menu _ )
66
7- Create a tree that shows/hides node children on click :
7+ Buat sebuah pohon yang akan menampilkan/menyembunyikan elemen bawahan pada saat di klik :
88
99[ iframe border=1 src="solution"]
1010
11- Requirements :
11+ Syarat :
1212
13- - Only one event handler (use delegation)
14- - A click outside the node title (on an empty space) should not do anything .
13+ - Hanya satu penangan peristiwa ( _ event handler _ ) gunakan delegasi peristiwa.
14+ - Klik di luar judul node (pada ruang kosong) tidak boleh melakukan apa-apa .
You can’t perform that action at this time.
0 commit comments