Cara Menangani Event pada Elemen Dinamis dengan jQuery

Elemen yang dibuat setelah halaman dimuat (misalnya baris yang ditambah lewat AJAX) tidak merespons event biasa. Solusinya adalah event delegation. Artikel ini membahas cara menangani event pada elemen dinamis dengan jQuery.

Delegasi lewat .on()

<script>
$("#daftar").on("click", ".hapus", function() {
    $(this).closest("li").remove();
});
</script>

Penjelasan

Event dipasang pada wadah tetap (#daftar), lalu difilter ke .hapus. Karena wadah selalu ada, elemen .hapus yang ditambahkan kemudian tetap merespons.

Contoh Kasus: Tombol Hapus pada Item yang Ditambah Dinamis

<script>
// menambah item baru
$("#tambah").click(function() {
    $("#daftar").append("<li>Item baru <button class='hapus'>x</button></li>");
});
// delegasi: tombol hapus tetap berfungsi meski baru ditambah
$("#daftar").on("click", ".hapus", function() {
    $(this).closest("li").remove();
});
</script>

Perbandingan

<script>
$(".hapus").click(...);              // GAGAL untuk elemen baru
$("#daftar").on("click", ".hapus"); // BERHASIL untuk elemen baru
</script>

Kesimpulan

Gunakan pola $(wadah).on("event", "target", fn) agar elemen dinamis tetap merespons event. Ini solusi wajib saat menambah elemen lewat AJAX atau perulangan.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi jQuery (api.jquery.com).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *