El Atributo ONDBLCLICK

Es un evento de JavaScript que se activa cuando el usuario hace doble clic sobre un elemento HTML.
El atributo ondblclick
es un evento de JavaScript que se activa cuando el usuario hace doble clic (dos clics rápidos seguidos) sobre un elemento HTML. Es útil para crear interacciones avanzadas, como acciones alternativas a un clic simple, edición rápida de contenido o activación de funciones especiales.
¿Dónde se aplica?
Funciona en cualquier elemento HTML, pero es más común en:
-
<button>
-
<div>
/<span>
-
<img>
-
Elementos de texto (
<p>
,<h1>
, etc.) -
Tablas (
<td>
,<tr>
)
Sintaxis básica
Como atributo HTML (inline):
<button ondblclick="alert('¡Doble clic detectado!')">Haz doble clic</button>
Con JavaScript (recomendado para separar lógica):
<div id="areaEditable">Doble clic para editar</div> <script> document.getElementById('areaEditable').ondblclick = function() { this.contentEditable = true; this.focus(); }; </script>
Ejemplos prácticos
Ejemplo 1: Alternar modo oscuro
<div ondblclick="cambiarModo()" style="padding: 20px; cursor: pointer;"> Doble clic para cambiar el tema </div> <script> function cambiarModo() { document.body.classList.toggle('modo-oscuro'); } </script> <style> .modo-oscuro { background: #111; color: white; } </style>
Ejemplo 2: Editor de texto rápido
<p ondblclick="activarEdicion(this)">Doble clic para editar este texto</p> <script> function activarEdicion(elemento) { const textoOriginal = elemento.textContent; elemento.contentEditable = true; elemento.focus(); // Desactivar edición al perder el foco elemento.addEventListener('blur', () => { elemento.contentEditable = false; if (elemento.textContent === '') { elemento.textContent = textoOriginal; } }); } </script>
Ejemplo 3: Eliminar elemento con confirmación
<div class="item" ondblclick="eliminarItem(this)"> ????️ Doble clic para eliminar </div> <script> function eliminarItem(elemento) { if (confirm('¿Eliminar este elemento?')) { elemento.remove(); } } </script>
Diferencias clave: ondblclick
vs onclick
Característica | ondblclick |
onclick |
---|---|---|
Número de clics | 2 clics rápidos | 1 clic |
Uso común | Acciones secundarias/avanzadas | Acciones primarias |
Velocidad de detección | Depende de la configuración del SO | Inmediato |
Mejores prácticas
No abuses del doble clic:
-
Usa acciones complementarias, no reemplaces funcionalidades estándar.
-
Ejemplo: Un clic selecciona un elemento, doble clic lo edita.
Accesibilidad:
Proporciona alternativas para usuarios que no puedan hacer doble clic.
<button ondblclick="accionRapida()" onclick="if (!event.detail || event.detail === 1) accionNormal()" > Click simple o doble </button>
Evita conflictos con el zoom:
En móviles, el doble toque puede activar el zoom. Usa meta viewport:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
Casos avanzados
Juego de memoria con cartas:
<div class="carta" ondblclick="revelarCarta(this)"> <div class="frontal">?</div> <div class="trasera">????</div> </div> <script> function revelarCarta(carta) { if (!carta.classList.contains('girada')) { carta.classList.add('girada'); } } </script> <style> .carta { position: relative; cursor: pointer; } .trasera { display: none; } .girada .frontal { display: none; } .girada .trasera { display: block; } </style>
Menú contextual avanzado:
<div class="archivo" ondblclick="abrirArchivo()" onclick="if (event.detail === 1) seleccionar()" > Documento.txt </div> <script> let seleccionado = false; function seleccionar() { seleccionado = true; document.querySelectorAll('.archivo').forEach(f => f.style.background = ''); this.style.background = '#e0e0e0'; } function abrirArchivo() { if (seleccionado) { window.open('documento.txt'); } } </script>
Errores comunes
<!-- MAL: Usar en elementos no interactivos sin feedback --> <div ondblclick="funcion()">Texto normal</div> <!-- El usuario no sabe que es clickeable --> <!-- CONFUSIÓN: Ignorar el clic simple --> <img src="imagen.jpg" ondblclick="ampliar()" onclick="// ¿Qué hace el clic simple aquí?" > <!-- OLVIDAR dispositivos táctiles --> <!-- El doble toque puede no funcionar igual que el doble clic -->
Compatibilidad
Navegador/Dispositivo | Soporte | Notas |
---|---|---|
Chrome | ✅ Todas versiones | |
Firefox | ✅ Todas versiones | |
Safari | ✅ Sí | |
Edge | ✅ Sí | |
Móviles | ⚠️ Limitado | Doble toque puede activar zoom |
Cómo desactivar el evento
// Eliminar el listener específico elemento.ondblclick = null; // Usando removeEventListener (si se usó addEventListener) elemento.removeEventListener('dblclick', miFuncion);
Conclusión
El atributo ondblclick
es ideal para:
- Funcionalidades avanzadas que requieren confirmación implícita.
- Mejorar la productividad en aplicaciones web complejas.
- Crear experiencias interactivas en juegos y editores.
Recuerda:
- No dependas exclusivamente del doble clic para funcionalidades críticas.
- Proporciona feedback visual para indicar elementos doble clickeables.
- Prueba en móviles y considera alternativas táctiles.
¡Ahora puedes implementar interacciones avanzadas y creativas con el doble clic!