Cara menggunakan delegation javascript

<Metode acara jQuery

Table of Contents

  • Definisi dan Penggunaan
  • Sintaksis
  • Coba Sendiri - Contoh
  • Gunakan delegate kecuali jika Anda tidak dapat menggunakan delegate.
  • Pengecualian untuk panduan umum di atas:
  • 💻 Mulai Belajar Pemrograman
  • Contoh Penggunaannya
  • Apa itu Event di JS?
  • Apa maksud dari event delegation?
  • Apa itu Delegate di C#?

Table of Contents

  • Definisi dan Penggunaan
  • Sintaksis
  • Coba Sendiri - Contoh
  • Gunakan delegate kecuali jika Anda tidak dapat menggunakan delegate.
  • Pengecualian untuk panduan umum di atas:
  • 💻 Mulai Belajar Pemrograman
  • Contoh Penggunaannya
  • Apa itu Event di JS?
  • Apa maksud dari event delegation?
  • Apa itu Delegate di C#?

Contoh

Ketika <p> elemen di dalam <div> elemen diklik, mengubah warna latar belakang dari semua <p> elemen:

$("div").delegate("p", "click", function(){
    $("p").css("background-color", "pink");
});

Cobalah sendiri "


Definisi dan Penggunaan

The delegate() metode menempel satu atau lebih event handler untuk elemen tertentu yang adalah anak-anak dari elemen yang dipilih, dan menentukan fungsi untuk menjalankan ketika peristiwa terjadi.

Event handler terpasang menggunakan delegate() metode akan bekerja untuk kedua elemen saat ini dan FUTURE (seperti elemen baru yang diciptakan oleh script).

Pada jQuery versi 1.7, yang on() metode adalah metode yang disukai untuk melampirkan event handler untuk elemen yang dipilih.


Sintaksis

$(selector).delegate(childSelector,event,data,function)


Parameter Deskripsi
childSelector Wajib. Menentukan satu atau elemen anak lebih untuk melampirkan event handler untuk
event Wajib. Menentukan satu atau lebih peristiwa untuk melampirkan elemen.

Beberapa nilai event dipisahkan oleh ruang. Harus acara valid

data Pilihan. Menentukan data tambahan untuk menyampaikan ke fungsi
function Wajib. Menentukan fungsi untuk menjalankan ketika peristiwa itu terjadi

Coba Sendiri - Contoh

Tambahkan event handler untuk elemen masa depan
Cara menggunakan delegate() metode untuk menambahkan event handler untuk elemen belum dibuat.

Menyampaikan data ke fungsi
Cara menyampaikan data ke event handler kustom bernama.


<Metode acara jQuery

Gunakan delegate kecuali jika Anda tidak dapat menggunakan delegate.

Delegasi acara adalah teknik yang digunakan untuk meningkatkan kinerja aplikasi. Ini secara drastis mengurangi jumlah langganan acara dengan memanfaatkan karakteristik "menggelegak" dari sebagian besar acara DOM. Dengan delegasi acara, penangan tidak terikat pada elemen individu. Sebagai gantinya, pengendali peristiwa tunggal dilampirkan ke simpul tingkat atas seperti elemen tubuh. Ketika sebuah peristiwa muncul hingga ke handler level atas yang dibagikan ini, logika delegasi acara memanggil handler yang sesuai berdasarkan target acara .

Untuk mengetahui apakah delegasi acara dapat digunakan dengan acara tertentu, google mdn [event name] event. Bahkan, sebelum platform web apa pun yang terkait pencarian google dengan mdn sering kali menghasilkan hasil berkualitas tinggi dari Mozilla Developer Network. Setelah Anda berada di halaman MDN acara, periksa apakah acara bubbles. Hanya acara yang bubble dapat digunakan dengan perintah mengikat delegate Aurelia. Acara blur, focus, load dan unload tidak muncul sehingga Anda harus menggunakan trigger perintah mengikat untuk berlangganan ke acara ini.

Inilah halaman MDN untuk blur . Ini memiliki info lebih lanjut tentang teknik delegasi acara untuk acara blur dan fokus.

Pengecualian untuk panduan umum di atas:

Gunakan trigger pada tombol ketika kondisi berikut dipenuhi:

  1. Anda harus menonaktifkan tombol.
  2. Konten tombol terdiri dari elemen lain (bukan hanya teks).

Ini akan memastikan klik pada anak-anak tombol yang dinonaktifkan tidak akan muncul ke pengendali acara delegasi. Info lebih lanjut di sini .

Gunakan trigger untuk click dalam kasus penggunaan iOS tertentu:

iOS tidak menggelembungkan acara klik pada elemen selain a, button, input dan select. Jika Anda berlangganan click pada elemen non-input seperti div dan menargetkan iOS, gunakan perintah pengikat trigger. Info lebih lanjut di sini dan di sini .

Pembelajaran lengkap dari pembuatan game menggunakan Unity dapat anda pelajari lebih mendalam di Dicoding Academy Belajar Membangun Game 2D dan 3D dengan Unity :  https://www.dicoding.com/academies/39

Pada tutorial kali ini, kita akan mengenal salah satu konsep untuk berkomunikasi antar objek dengan menggunakan Delegates dan Event. Cara yang paling umum untuk digunakan jika ingin berkomunikasi dengan objek lain adalah dengan memberikan reference terhadap sebuah object. Kita bisa melakukan ini dengan cara membuat public variable untuk suatu game object lalu memberikan reference melalui inspector. Kita juga bisa melakukan komunikasi dengan cara menggunakan fungsi find game object. Atau yang paling mudah, kita bisa menggunakan fungsi sendMessage yang memiliki limitasi hanya bisa memanggil fungsi di script lain yang berada dalam satu komponen game object.

Pendekatan delegates dan event merupakan salah satu pendekatan yang cukup populer dalam bahasa pemrograman C# dan bisa membuat kode kita bisa lebih bersih. Jika komunikasi yang kita lakukan sudah semakin banyak percabangan dan referencenya, pendekatan delegates dan event akan membantu kita untuk bisa mendesain arsitektur kode kita lebih baik lagi. Mari kita akan coba bahas teori dari delegate dan event secara general terlebih dahulu.

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang


Delegate

Secara konsep, delegate merupakan pointer reference dari suatu method. Delegate dapat membuat kita menjadikan sebuah method menjadi variabel dan melempar sebuah method sebagai sebuah variable ketika melakukan callback. Ketika method ini dipanggil, maka sistem akan menotifikasi seluruh metode yang merefer ke delegate. Analoginya mirip dengan subscription. Semua method yang melakukan subscription akan diupdate secara otomatis. Delegate sangat bermanfaat untuk invoke method dalam jumlah banyak dalam satu event runtime dan digunakan untuk trigger callback method.

Mungkin secara konsep terasa sangat membingungkan, namun jangan khawatir, seiring nanti kita belajar mempraktekan delegate dan event, akan semakin terbayang betapa simpel dan efisiennya penggunakan metode ini untuk komunikasi antar objek.

Sebagai contoh, kita bisa ambil kasus sebuah kode dimana jika kita menekan tombol, akan memberikan efek di dua gameobject yang berbeda. Semisal jika kita menekan button shoot, maka akan ada dua gameobject yang menjalankan methodnya. Yang pertama akan ada object pistol yang menginisiasi peluru dan yang kedua akan ada object UI yang mengurangi jumlah peluru yang player miliki. Contoh sintaksnya adalah sebagai berikut:

//Declare Delegate

publicdelegate voidButtonClick();


Event

Event merupakan tipe spesial dari delegates yang dapat digunakan untuk menotifikasi kelas lainnya ketika sesuatu terjadi. Contohnya ketika button shoot dipencet, event akan memberikan notifikasi kepada kelas peluru dan kelas jumlah peluru untuk melakukan aksinya masing-masing. Event bisa di deklarasi menggunakan delegates. Ini adalah contoh sintaksnya.

//Declare Delegate

publicdelegate voidButtonClick();

//Declare Event

publicstaticevent ButtonClick Click;


Contoh Penggunaannya

Pertama kita akan memberikan deklarasi delegate dan event pada kelas yang memproses tombol shoot yang diklik, kita beri nama kelas ButtonShoot.cs.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

publicclassButtonShoot:MonoBehaviour

{

  //delegate()

  publicdelegate voidButtonClick();

  //event

  publicstaticevent ButtonClick Click;

  publicvoidUpdate()

  {

    if(Input.GetKeyDown(KeyCode.A))

    {

      OnButtonShootClick();

    }

  }

  //method yang mentrigger untuk event Click dipanggil

  publicvoidOnButtonShootClick()

  {

    //panggil eventnya

    Click();

  }

}

Selanjutnya kita akan membuat kode dari kelas yang subscribe tersebut sehingga ketika terjadi perubahaan, method pada kelas ini akan dijalankan. Kita akan membuat dua kelas yang subscribe terhadap event Click yakni kelas Pistol.cs dan kelas TextPeluru.cs.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

publicclassPistol:MonoBehaviour

{

  public GameObject peluru;

  publicTransform moncongPistol;

  //melakukan subscribsi method ke event

  voidOnEnable()

  {

    ButtonShoot.Click +=BulletShoot;

  }

  voidBulletShoot()

  {

    //diisi kode untuk menembakan peluru

    Rigidbody rig= Instantiate(peluru,moncongPistol.position,Quaternion.identity).GetComponent<Rigidbody>();

    rig.velocity =moncongPistol.TransformDirection(Vector3.forward*400);

  }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

publicclassTextPeluru :MonoBehaviour

{

  //variabel untuk menyimpan jumlah peluru

  intbullet;

  publicText textBullet;

  publicvoid Start()

  {

    bullet=100;

  }

  publicvoidUpdate()

  {

    textBullet.text =bullet.ToString();

  }

  //melakukan subscribsi method ke event

  voidOnEnable()

  {

    ButtonShoot.Click +=ReduceBullet;

  }

  voidReduceBullet()

  {

    //diisi kode untuk menembakan peluru

    bullet--;

  }

}

Dengan memasang kode di atas, maka ketika tombol button shoot ditekan, secara otomatis kelas Pistol.cs akan menjalankan method BulletShoot() dan kelas Peluru.cs akan menjalankan method ReduceBullet().

Semoga tutorial ini bisa membantu teman-teman untuk membuat kode program yang lebih clean dan efektif. Untuk mengunduh contoh programnya, silakan klik link berikut.

Masih banyak pembahasan menarik di Dicoding Academy Belajar Membangun Game 2D dan 3D dengan Unity yang belum kita bahas di sini, untuk pembahasan lebih jauh silakan kunjungi Academy Belajar Membangun Game 2D dan 3D dengan Unity (https://www.dicoding.com/academies/39). Jika ada pertanyaan, saran atau masukan jangan sungkan untuk menuliskannya di kolom komentar.

Selamat belajar, semoga bermanfaat, dan nantikan tutorial pembuatan game menggunakan Unity selanjutnya.

Apa itu Event di JS?

Pada Javascript: Event adalah kejadian yang terjadi di halaman web. Kejadian yang dimaksud di sini seperti aktivitas yang dikerjakan pada halaman web.

Apa maksud dari event delegation?

Sedangkan pengertian event delegation mendelegasian penanganan event suatu element kepada event lainnya. Di sini kita akan mendelegasikan penanganan event dari suatu element kepada parentnya.

Apa itu Delegate di C#?

Delegate pada C# digunakan untuk memperlakukan sebuah method seperti sebuah objek. Langsung saja pakai contoh ya: Pertama, deklarasi dulu delegate-nya: public delegate void PrintDelegate(string text);