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/01-introduction-browser-events/03-which-handlers-run/solution.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
Jawabannya: `1` dan `2`.
2
2
3
-
Pengendali pertama dijalankan, karena tidak di hapuskan oleh `removeEventListener`. Untuk menghapuskan pengendali kita harus meneruskan secara tepat fungsi yang telah di atur. Dan pada kode sebuah fungsi baru di teruskan, terlihat sama, tapi berbeda fungsi.
3
+
penangan pertama dijalankan, karena tidak di hapuskan oleh `removeEventListener`. Untuk menghapuskan penangan kita harus meneruskan secara tepat fungsi yang telah di atur. Dan pada kode sebuah fungsi baru di teruskan, terlihat sama, tapi berbeda fungsi.
4
4
5
5
Untuk menghapuskan objek fungsi, kita harus menyimpan refensi ke fungsi tersebut, seperti ini:
@@ -68,7 +68,7 @@ Seperti yang kita ketahui, atribut HTML tidak _case-sensitive_, jadi `ONCLICK`,
68
68
69
69
### Properti DOM (_DOM property_)
70
70
71
-
Sebuah pengendali bisa di atur menggunakan properti DOM`on<event>`.
71
+
Sebuah penangan bisa di atur menggunakan properti DOM`on<event>`.
72
72
73
73
Contohnya, `elem.onclick`:
74
74
@@ -83,7 +83,7 @@ Contohnya, `elem.onclick`:
83
83
</script>
84
84
```
85
85
86
-
Jika pengendali di atur menggunakan atribut-HTML maka peramban membaca, membuat sebuah fungsi baru dari konten atribute dan menulisnya pada properti DOM.
86
+
Jika penangan di atur menggunakan atribut-HTML maka peramban membaca, membuat sebuah fungsi baru dari konten atribute dan menulisnya pada properti DOM.
87
87
88
88
Jadi cara ini sebenarnya sama dengan yang sebelumnya.
89
89
@@ -109,26 +109,26 @@ Kedua kode ini memiliki cara kerja yang sama:
109
109
110
110
Pada contoh pertama, atribut HTML digunakan untuk menginisialisasikan `tombol.onclick`, sedangkan pada contoh kedua -- _script_, dan hanya itu perbedaanya.
111
111
112
-
**Karena hanya ada satu properti `onclick`, kita tidak bisa mengatur lebih dari satu pengendali peristiwa.**
112
+
**Karena hanya ada satu properti `onclick`, kita tidak bisa mengatur lebih dari satu penangan peristiwa.**
113
113
114
-
Pada contoh dibawah menambah sebuah pengendali menggunakan Javascript akan menimpa pengendali yang sudah ada:
114
+
Pada contoh dibawah menambah sebuah penangan menggunakan Javascript akan menimpa penangan yang sudah ada:
Perbedaannya mudah untuk di jelaskan. Pada saat peramban membaca atribute, peramban akan membuat fungsi pengendali yang didalamnya terdapat konten dari atribut tersebut.
171
+
Perbedaannya mudah untuk di jelaskan. Pada saat peramban membaca atribute, peramban akan membuat fungsi penangan yang didalamnya terdapat konten dari atribut tersebut.
172
172
173
173
Jadi HTML akan menghasilkan properti ini:
174
174
```js
@@ -179,7 +179,7 @@ button.onclick = function() {
179
179
};
180
180
```
181
181
182
-
**Jangan gunakna `setAttribute` untuk membuat pengendali.**
182
+
**Jangan gunakna `setAttribute` untuk membuat penangan.**
Salah satu masalah mendasar pada cara mengatur pengedali sebelumnya -- kita tidak bisa mengatur beberapa pengendali pada sebuah peristiwa.
198
+
Salah satu masalah mendasar pada cara mengatur pengedali sebelumnya -- kita tidak bisa mengatur beberapa penangan pada sebuah peristiwa.
199
199
200
200
Mari kata, sebuah bagian pada koded kita ingin menyoroti sebuah tombol pada saat diklik, dan satu lagi ingin menunjukan seubah pesan pada proses pengklikan tersebut.
201
201
202
-
Kita ingin mengatur dua pengendali peristiwa untuk hal tersebut. Tapi properti DOM yang baru akan menimpa properti DOM yang telah ada.
202
+
Kita ingin mengatur dua penangan peristiwa untuk hal tersebut. Tapi properti DOM yang baru akan menimpa properti DOM yang telah ada.
203
203
204
204
```js no-beautify
205
205
input.onclick=function() { alert(1); }
206
206
// ...
207
207
input.onclick=function() { alert(2); } // menganti pengedali yang lama
208
208
```
209
209
210
-
Pengembang dari standar situs web paham sejak lama, dan menyarankan cara alternatif untuk mengelola pengendali menggunakan metode khusus `addEventListener` dan `removeEventListener`. Kedua hal tersebut tidak memiliki permasalahan seperti itu.
210
+
Pengembang dari standar situs web paham sejak lama, dan menyarankan cara alternatif untuk mengelola penangan menggunakan metode khusus `addEventListener` dan `removeEventListener`. Kedua hal tersebut tidak memiliki permasalahan seperti itu.
211
211
212
-
Sintaks (_syntax_) untuk menambahkan sebuah pengendali:
212
+
Sintaks (_syntax_) untuk menambahkan sebuah penangan:
- `once`: jika `true`, maka pendengar akan secara otomatis dihapus setelah terpicu.
227
227
- `capture`: fase dimana untuk menangani peristiwa, akan di bahas lebih lanjut pada bab <info:bubbling-and-capturing>. untuk alasan sejarah, `options` bisa juga diatur `false/true`, sama halnya dengan `{capture: false/true}`.
228
-
- `passive`: jika `true`, maka pengendali tidak akan memanggil `preventDefault()`, kita akan membahas lebih lanjut pada bab <info:default-browser-action>.
228
+
- `passive`: jika `true`, maka penangan tidak akan memanggil `preventDefault()`, kita akan membahas lebih lanjut pada bab <info:default-browser-action>.
229
229
230
-
Untuk menghapus pengendali, gunakan `removeEventListener`:
230
+
Untuk menghapus penangan, gunakan `removeEventListener`:
Harap dicatat -- Jika kita tidak menyimpan fungsi tersebut kedalam variable, maka kita tidak bisa menghapusnya. Tidak ada cara untuk "membaca kembali" pengendali yang di atur pada `addEventListener`.
261
+
Harap dicatat -- Jika kita tidak menyimpan fungsi tersebut kedalam variable, maka kita tidak bisa menghapusnya. Tidak ada cara untuk "membaca kembali" penangan yang di atur pada `addEventListener`.
262
262
````
263
263
264
-
Beberapa pemanggilan ke `addEventListener` mengijinkan untuk menambahkan beberapa pengendali, seperti ini:
264
+
Beberapa pemanggilan ke `addEventListener` mengijinkan untuk menambahkan beberapa penangan, seperti ini:
Seperti yang bisa kita lihat pada contoh di atas, kita bisa mengatur *kedua*pengendali menggunakan properti DOM dan `addEventListener`. Tapi pada umumnya kita hanya akan menggunakan salah satu.
286
+
Seperti yang bisa kita lihat pada contoh di atas, kita bisa mengatur *kedua*penangan menggunakan properti DOM dan `addEventListener`. Tapi pada umumnya kita hanya akan menggunakan salah satu.
287
287
288
-
````warn header="Untuk beberapa peristiwa, pengendali bekerja hanya dengan `addEventListener`"
288
+
````warn header="Untuk beberapa peristiwa, penangan bekerja hanya dengan `addEventListener`"
289
289
Ada beberapa peristiwa yang tidak dapat di atur menggunakan properti DOM. hanya dengan `addEventListener`.
290
290
291
291
Contohnya, peristiwa `DOMContentLoaded`, yang akan terpicu pada saat dokumen telah berhasil di dimuat dan dibuat.
@@ -310,7 +310,7 @@ Jadi `addEventListener` lebih universal. Walaupun, aturan semacam itu merupakan
310
310
311
311
Untuk menangani peristiwa secara benar sebuah peristiwa kita mau tahu lebih tentang apa yang terjadi. Tidak hanya sebuah "klik" atau sebuah "penekanan tombol", tapi apa koordinat pointer? tombol mana yang di tekan? dan seterusnya.
312
312
313
-
Pada saat sebuah peristiwa terjadi, peramban akan membuat *objek peristiwa*, memasukan detail kedalamnya dan meneruskan peristiwa tersebut ke pengendali sebagai sebuah argumen.
313
+
Pada saat sebuah peristiwa terjadi, peramban akan membuat *objek peristiwa*, memasukan detail kedalamnya dan meneruskan peristiwa tersebut ke penangan sebagai sebuah argumen.
314
314
315
315
Ini merupakan contoh cara untuk mendapat koordinat pointer dari objek peristiwa:
316
316
@@ -332,21 +332,21 @@ Beberapa properti dari objek `peristiwa`:
332
332
: Tipe peristiwa, disini tipenya `"click"`.
333
333
334
334
`peristiwa.currentTarget`
335
-
: elemen yang ditangani oleh peristiwa. Sama persis dengan `this`, kecuali jika pengendali merupakan fungsi anak panah (arrow function), atau `this` sudah di atur untuk hal lain, maka kita dapat menggunakan `peristiwa.currentTarget` untuk mendapati elemen.
335
+
: elemen yang ditangani oleh peristiwa. Sama persis dengan `this`, kecuali jika penangan merupakan fungsi anak panah (arrow function), atau `this` sudah di atur untuk hal lain, maka kita dapat menggunakan `peristiwa.currentTarget` untuk mendapati elemen.
336
336
337
337
`peristiwa.clientX / peristiwa.clientY`
338
338
: koordinat kursor relatif pada jendela (window), untuk peristwa pointer.
339
339
340
340
Masih banyak lagi properti. Banyak yang tergantung pada tipe peristiwa: peristiwa papan ketik memilik satu set properti, peristiwa pointer - memiliki set yang berbeda, kita nanti akan mempelajari mereka pada saat kita mendapati peristiwa lainnya secara detail.
341
341
342
-
````smart header="Objek peristiwa juga ada pada pengendali HTML"
343
-
Jika kita mengatur pengendali pada HTML, kita bisa juga menggunakan objek peristiwa, seperti ini:
342
+
````smart header="Objek peristiwa juga ada pada penangan HTML"
343
+
Jika kita mengatur penangan pada HTML, kita bisa juga menggunakan objek peristiwa, seperti ini:
Ini terjadi karena pada saat peramban membaca atribut, itu membuat sebuah pengendali seperti ini: `function(event) {alert(event.type) }`. yaitu: argumen pertamanya disebut dengan `"event"`, dan tubuhnya di ambil dari atribut.
349
+
Ini terjadi karena pada saat peramban membaca atribut, itu membuat sebuah penangan seperti ini: `function(event) {alert(event.type) }`. yaitu: argumen pertamanya disebut dengan `"event"`, dan tubuhnya di ambil dari atribut.
0 commit comments