Double Click Event: Aksi Ganda dalam Satu Sentuhan
Saat menggunakan aplikasi web, ada kalanya kita ingin menjalankan aksi khusus ketika pengguna melakukan double click atau klik dua kali pada suatu elemen. JavaScript menyediakan event dblclick
yang bisa kita manfaatkan untuk menangani interaksi ini. Misalnya, kita bisa menggandakan teks, memperbesar gambar, atau membuka detail tambahan hanya dengan satu kali double click.
Artikel ini akan membahas apa itu event dblclick
, bagaimana cara menggunakannya, serta contoh penerapannya dalam berbagai skenario interaktif.
Apa Itu dblclick
Event?
dblclick
adalah event dalam JavaScript yang dipicu ketika pengguna mengklik elemen dua kali secara berurutan dalam waktu singkat. Event ini sering digunakan untuk memberikan aksi ganda pada elemen tanpa harus menambahkan tombol tambahan.
Sintaks dasar untuk menangani dblclick
event:
element.addEventListener("dblclick", function() {
// Aksi yang akan dilakukan ketika elemen diklik dua kali
});
Cara Menggunakan Double Click Event
1. Menangani Double Click pada Tombol
Contoh paling sederhana adalah menambahkan aksi double click pada tombol:
<button id="doubleClickBtn">Klik Dua Kali</button>
<p id="pesan"></p>
document.getElementById("doubleClickBtn").addEventListener("dblclick", function() {
document.getElementById("pesan").textContent = "Tombol diklik dua kali!";
});
Ketika tombol diklik dua kali, teks dalam paragraf akan berubah menjadi "Tombol diklik dua kali!".
2. Mengubah Warna Elemen dengan Double Click
Jika kita ingin mengubah warna latar belakang suatu elemen saat pengguna melakukan double click:
<div id="kotak" style="width: 100px; height: 100px; background: gray;"></div>
document.getElementById("kotak").addEventListener("dblclick", function() {
this.style.backgroundColor = "blue";
});
Ketika div diklik dua kali, warnanya akan berubah menjadi biru.
3. Memperbesar Gambar dengan Double Click
Double click juga sering digunakan untuk memperbesar gambar:
<img id="gambar" src="image.jpg" width="200">
document.getElementById("gambar").addEventListener("dblclick", function() {
this.style.width = "400px";
});
Dengan kode ini, gambar akan menjadi lebih besar saat diklik dua kali.
Menggunakan dblclick
Bersama click
Kadang kita ingin membedakan aksi single click dan double click dalam satu elemen. Untuk itu, kita bisa menggunakan setTimeout
agar JavaScript bisa membedakan klik biasa dan klik ganda:
let timer;
const tombol = document.getElementById("doubleClickBtn");
tombol.addEventListener("click", function() {
clearTimeout(timer);
timer = setTimeout(() => {
console.log("Klik biasa");
}, 300);
});
tombol.addEventListener("dblclick", function() {
clearTimeout(timer);
console.log("Klik dua kali");
});
Kode ini akan menjalankan aksi klik biasa jika hanya satu kali klik, dan aksi double click jika pengguna mengklik dua kali dalam waktu singkat.
Delegasi Event untuk Elemen Dinamis
Jika elemen dibuat secara dinamis, event listener harus ditambahkan ke elemen induknya menggunakan event delegation.
<ul id="daftar">
<li>Item 1</li>
<li>Item 2</li>
</ul>
<button id="tambah">Tambah Item</button>
const daftar = document.getElementById("daftar");
document.getElementById("tambah").addEventListener("click", function() {
const itemBaru = document.createElement("li");
itemBaru.textContent = "Item Baru";
daftar.appendChild(itemBaru);
});
daftar.addEventListener("dblclick", function(event) {
if (event.target.tagName === "LI") {
event.target.style.color = "red";
}
});
Dengan event delegation, kita bisa menangani event double click pada elemen <li>
yang ditambahkan setelah halaman dimuat.
Kapan Harus Menggunakan dblclick
Event?
✅ Jika ingin menjalankan aksi berbeda dengan single click.
✅ Jika ingin memperbesar gambar atau elemen dengan mudah.
✅ Jika ingin menyediakan shortcut untuk aksi tertentu tanpa menambah tombol tambahan.
✅ Jika ingin membuat pengalaman pengguna lebih interaktif.
❌ Jangan gunakan dblclick
untuk aksi yang lebih baik dilakukan dengan hover atau single click.
Kesimpulan
- Double click event (
dblclick
) digunakan untuk menangani aksi klik dua kali pada elemen web. - Bisa digunakan untuk mengubah warna, memperbesar elemen, atau menampilkan fitur tambahan tanpa tombol tambahan.
- Jika ingin membedakan antara single click dan double click, gunakan
setTimeout()
. - Event delegation diperlukan jika ingin menangani elemen yang dibuat secara dinamis.
Dengan memahami cara kerja dblclick
, kita bisa meningkatkan pengalaman pengguna dengan interaksi yang lebih kaya dalam aplikasi web.