You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 2-ui/2-events/02-bubbling-and-capturing/article.md
+29-31Lines changed: 29 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,41 +117,40 @@ Biasanya tidak ada keperluan utama yang membuat kita harus menghentikan proses m
117
117
118
118
## Penangkapan (_Capturing_)
119
119
120
-
There's another phase of event processing called "capturing". It is rarely used in real code, but sometimes can be useful.
120
+
Ada juga sebuah fase pada proses peristiwa yang disebut dengan Penangkapan (_capturing_). proses ini jarang digunakan, tapi akan berguna pada saat dibutuhkan.
121
121
122
-
The standard [DOM Events](http://www.w3.org/TR/DOM-Level-3-Events/)describes 3 phases of event propagation:
122
+
Standar sebuah [Peristiwa DOM](http://www.w3.org/TR/DOM-Level-3-Events/)terbagi menjadi 3 fase, yaitu:
123
123
124
-
1.Capturing phase -- the event goes down to the element.
125
-
2.Target phase -- the event reached the target element.
126
-
3.Bubbling phase -- the event bubbles up from the element.
124
+
1.fase penangkapan (_capturing phase_) -- peristiwa mulai mencari elemen.
125
+
2.fase target (_target phase_) -- peristiwa menemukan elemen.
126
+
3.fase mengelembung (_bubbling phase_) -- peristiwa mulai naik ke atas dari elemen dasar.
127
127
128
-
Here's the picture of a click on `<td>`inside a table, taken from the specification:
128
+
Berikut ini sebuah gambar tentang klik yang terjadi pada `<td>`didalam sebuah tabel, yang diambil dari spesifikasi:
129
129
130
130

131
131
132
-
That is: for a click on `<td>`the event first goes through the ancestors chain down to the element (capturing phase), then it reaches the target and triggers there (target phase), and then it goes up (bubbling phase), calling handlers on its way.
132
+
Maka: untuk klik pada `<td>`peristiwa (_event_) akan pertama melewati elemen paling atas dan turun ke elemen yang bawaha (fase penangkapan), kemudian pada saat mencapai elemen yang di target akan di jalankan pada elemen tersebut (fase target), dan kemudia peristiwa itu akan naik ke atas (fase mengelembung), sambil memanggil penangan (_handler_) yang ada.
133
133
134
-
**Before we only talked about bubbling, because the capturing phase is rarely used. Normally it is invisible to us.**
134
+
**Sebelumnya kita hanya membahas tentang proses pengelembungan, karena proses penangkapan jarang digunakan, biasanya proses ini tidak terlihat oleh kita.**
135
135
136
-
Handlers added using `on<event>`-property or using HTML attributes or using two-argument`addEventListener(event, handler)`don't know anything about capturing, they only run on the 2nd and 3rd phases.
136
+
Penangan (_Handlers_) yang di tambahkan menggunakan `on<event>`-properti atau menggunakan atribut HTML atau menggunakan dua argumen`addEventListener(event, handler)`tidak mengetahui tentang proses penangkapan, mereka hanya menjalankan fase ke 2 dan fase ke 3.
137
137
138
-
To catch an event on the capturing phase, we need to set the handler`capture`option to`true`:
138
+
Untuk menangkap sebuah peristiwa pada fase penangkapan, kita perlu mengatur penangan (_handler_) pilihan`capture`menjadi`true`:
139
139
140
140
```js
141
141
elem.addEventListener(..., {capture:true})
142
-
//or, just "true" is an alias to {capture: true}
142
+
//atau, hanya "true" karena merupakan alias dari {capture: true}
143
143
elem.addEventListener(..., true)
144
144
```
145
145
146
-
There are two possible values of the`capture` option:
146
+
Hanya ada 2 kemungkinan nilai dari pilihan`capture`:
147
147
148
-
-If it's `false` (default), then the handler is set on the bubbling phase.
149
-
-If it's `true`, then the handler is set on the capturing phase.
148
+
-Jika `false` (bawaan (_default_) ), maka penangan (_handler_) di atur pada fase pengelembungan atau fase ke 3.
149
+
-Jika `true`, aka penangan (_handler_) di atur pada fase penangkapan atau fase pertama.
150
150
151
+
Catatan, sementara secara umum hanya ada 3 fase, dan fase ke dua ("fase target": peristiwa mencapai elemen yang di target) tidak di tangani secara terpisah: penangan (_handler_) pada kedua fase penangkapan dan pengelembungan di jalankan pada fase tersebut.
151
152
152
-
Note that while formally there are 3 phases, the 2nd phase ("target phase": the event reached the element) is not handled separately: handlers on both capturing and bubbling phases trigger at that phase.
153
-
154
-
Let's see both capturing and bubbling in action:
153
+
Mari lihat kedua fase penangkapan dan pengelembungan:
155
154
156
155
```html run autorun height=140 edit
157
156
<style>
@@ -169,36 +168,35 @@ Let's see both capturing and bubbling in action:
There's a property`event.eventPhase`that tells us the number of the phase on which the event was caught. But it's rarely used, because we usually know it in the handler.
185
+
Ada sebuah properti`event.eventPhase`yang akan memberikan kita nomor dari fase yang dimana peristiwa tersebut di tangkap. Tapi properti ini jarang digunakan, karena kita biasanya mendapat info itu dari penangan(_handler_) itu sendiri.
187
186
188
-
```smart header="To remove the handler, `removeEventListener`needs the same phase"
189
-
If we `addEventListener(..., true)`, then we should mention the same phase in`removeEventListener(..., true)`to correctly remove the handler.
187
+
```smart header="Untuk menghapus penangan, `removeEventListener`membutuhkan fase yang sama"
188
+
Jika kita menggunakan `addEventListener(..., true)`, maka kita harus menggunakan fase yang sama pada`removeEventListener(..., true)`untuk menghapus penangan secara benar.
190
189
```
191
190
192
-
````smart header="Listeners on same element and same phase run in their set order"
193
-
If we have multiple event handlers on the same phase, assigned to the same element with `addEventListener`, they run in the same order as they are created:
191
+
````smart header="Pendengar pada elemen dan fase yang sama akan dijalankan berdasarkan urutan mereka"
192
+
Jika kita memiliki beberapa penangan pada fase yang sama, dan di atur pada elemen yang sama dengan menggunakan `addEventListener`, mereka akan berjalan sesuai dengan urutan mereka di buat:
194
193
195
194
```js
196
-
elem.addEventListener("click", e => alert(1)); // guaranteed to trigger first
195
+
elem.addEventListener("click", e => alert(1)); // akan selalu berjalan duluan
197
196
elem.addEventListener("click", e => alert(2));
198
197
```
199
198
````
200
199
201
-
202
200
## Summary
203
201
204
202
When an event happens -- the most nested element where it happens gets labeled as the "target element" (`event.target`).
0 commit comments