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
+24-24Lines changed: 24 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,57 +65,57 @@ Catat perbedaan dari `this` (=`event.currentTarget`):
65
65
66
66
Contohnya, jika sebuah penangan (_handler_) `form.onclick`, kemudian form itu akan "menangkap" semua klik yang terjadi didalam form. Tidak peduli dimana klik itu terjadi, klik itu akan mengelembung ke `<form>` dan akan menjalankan penangan (_handler_).
67
67
68
-
In `form.onclick` handler:
68
+
Pada penangan (_handler_) `form.onclick`:
69
69
70
-
-`this` (=`event.currentTarget`) is the`<form>` element, because the handler runs on it.
71
-
-`event.target`is the actual element inside the form that was clicked.
70
+
-`this` (=`event.currentTarget`) adalah elemen`<form>`, karena penangan (_handler_) dijalankan pada `<form>`.
71
+
-`event.target`adalah elemen didalam `<form>` dimana peristiwa klik terjadi.
72
72
73
-
Check it out:
73
+
Contohnya:
74
74
75
75
[codetabs height=220 src="bubble-target"]
76
76
77
-
It's possible that `event.target`could equal `this`-- it happens when the click is made directly on the `<form>` element.
77
+
`this` dan `event.target`bisa merupakan elemen yang sama -- itu terjadi pada saat klik terjadi tepat di elemen `<form>`.
78
78
79
-
## Stopping bubbling
79
+
## Menghentikan Menggelembung (_bubbling_)
80
80
81
-
A bubbling event goes from the target element straight up. Normally it goes upwards till `<html>`, and then to `document` object, and some events even reach `window`, calling all handlers on the path.
81
+
Sebuah proses menggelembung berasal dari `target` elemen akan naik keatas. Biasanya proses itu akan terjadi sampai mencapai elemen `<html>`, dan kemudian ke objek `document`, dan ada beberapa peristiwa (_event_) yang bahkan bisa mencapai jendela (_`window`_), sambil menjalankan semua penangan (_handler_) yang ada di setiap elemen.
82
82
83
-
But any handler may decide that the event has been fully processed and stop the bubbling.
83
+
Tapi salah satu penangan (_handler_) dapat menghentikan peristiwa (_event_) jika penangan (_handler_) beranggapan bahwa proses tersebut telah berhasil di proses.
84
84
85
-
The method for it is`event.stopPropagation()`.
85
+
Metode untuk melakukan perhentian adalah`event.stpoPropagation()`.
86
86
87
-
For instance, here `body.onclick`doesn't work if you click on`<button>`:
87
+
Contohnya, `body.onclick`tidak akan dijalankan jika kamu mengklik pada`<button>`:
If an element has multiple event handlers on a single event, then even if one of them stops the bubbling, the other ones still execute.
96
+
Jika sebuah elemen memiliki beberapa penangan (handler) untuk satu peristiwa (event), maka bahkan jika salah satu dari penangan menghentikan proses pengelembungan, penagan yang lain akan tetap di jalankan.
97
97
98
-
In other words, `event.stopPropagation()` stops the move upwards, but on the current element all other handlers will run.
98
+
Dengan kata lain, `event.stopPropagation()` menghentinkan proses yang keatas, tapi pada elemen yang sama penangan (handler) lain akan tetap di jalankan.
99
99
100
-
To stop the bubbling and prevent handlers on the current element from running, there's a method `event.stopImmediatePropagation()`. After it no other handlers execute.
100
+
Untuk menghentukan pengelembungan (handler) dan mencegah penangan (handler) lain yang ada pada elemen tersebut untuk dijalankan, harus menggunakan metode `event.stopImmediatePropagation()`. Setelah itu tidak akan ada penangan (handler) yang dijalankan.
101
101
```
102
102
103
-
```warn header="Don't stop bubbling without a need!"
104
-
Bubbling is convenient. Don't stop it without a real need: obvious and architecturally well thought out.
103
+
```warn header="Jangan menghentikan proses mengelembung jika tidak perlu!"
104
+
Proses mengelembung cukup berguna. Jangan menghentikan proses ini jika tidak ada perlu: tentu saja harus di pikir dengan baik-baik.
105
105
106
-
Sometimes `event.stopPropagation()` creates hidden pitfalls that later may become problems.
106
+
Terkadang `event.stopPropagation()` akan menyebabkan jebakan tersembunyi yang mungkin akan menjadi masalah.
107
107
108
-
For instance:
108
+
Contoh:
109
109
110
-
1. We create a nested menu. Each submenu handles clicks on its elements and calls `stopPropagation` so that the outer menu won't trigger.
111
-
2. Later we decide to catch clicks on the whole window, to track users' behavior (where people click). Some analytic systems do that. Usually the code uses `document.addEventListener('click'…)` to catch all clicks.
112
-
3. Our analytic won't work over the area where clicks are stopped by `stopPropagation`. Sadly, we've got a "dead zone".
110
+
1. Kita membuat sebuah menu yang bersarang. Pada setiap submenu penangan (_handles_) klik pada elemen itu dan menjalankan `stopPropagation` jadi bagian luar menu tidak akan dijalankan.
111
+
2. Kemudian kita memutuskan untuk menangkap klik pada keseluruhan jendela (_window_), untuk melacak kebiasaan pengguna (dimana biasa penggunana mengklik). Beberapa sistem analisa menggunakan metode ini. Biasanya code yang digunakan `document.addEventListener('click'…)` untuk menangkap semua klik.
112
+
3. Analisis kita tidak akan bekerja pada area dimana kita telah menghentikan peristiwa klik dengan menggunakan `stopPropagation`. Dengan kata lain kita telah membuat daerah mati (_dead zone_).
113
113
114
-
There's usually no real need to prevent the bubbling. A task that seemingly requires that may be solved by other means. One of them is to use custom events, we'll cover them later. Also we can write our data into the `event` object in one handler and read it in another one, so we can pass to handlers on parents information about the processing below.
114
+
Biasanya tidak ada keperluan utama yang membuat kita harus menghentikan proses mengelembung. Sebuah fungsi yang kelihatannya membutuhkan penggunaaan metode itu bisa di selesaikan dengan menggunakan cara lain. Salah satunya dengan menggunakan peristiwa khusus, kita akan membahasnya nanti. Dan juka kita dapat menulis data kedalam objek `event` pada sebuah penangan (handler) dan membacanya pada penangan (handler) lainnya, jadi kita dapat meneruskan data tentang proses yang terjadi dibawah ke penangan (handler) elemen atas.
115
115
```
116
116
117
117
118
-
## Capturing
118
+
## Penangkapan (_Capturing_)
119
119
120
120
There's another phase of event processing called "capturing". It is rarely used in real code, but sometimes can be useful.
0 commit comments