Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

264
Vistas
¿Cómo uso los eventos 'clic' y 'dbclick' en un elemento?

Tengo un elemento de etiqueta para una página web. al pulsar una vez se ejecuta una lógica, al pulsar dos veces otra. Sin embargo, el DOM solo responde a un clic y se activa de inmediato, sin importar qué tan rápido intente activar un evento de doble clic.

¿Cómo uso estos dos eventos en un elemento?

 export const createTag = (name) => { const tag = document.createElement('span'); tag.innerHTML = name; tag.addEventListener('dblclick', () => { tags.removeChild(tag); storeTags.splice(storeTags.indexOf(name), 1); }); tag.addEventListener('click', () => { search.value = tag.innerHTML; const keyboardEvent = new KeyboardEvent('keypress', { code: 'Enter', key: 'Enter', charCode: 13, keyCode: 13, view: window, bubbles: true, }); storeTags.splice(storeTags.indexOf(name), 1); storeTags.unshift(name); search.dispatchEvent(keyboardEvent); }); return tag; };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La idea básica para lograr esto sería agregar un pequeño retraso a la operación de click y cancelarlo si se recibe un dblclick . Esto conduce a una capacidad de respuesta reducida de su interfaz de usuario, ya que su aplicación ahora tiene que distinguir explícitamente entre clics simples y dobles en una especie de enfoque de "esperar y ver". Esto también puede ser poco confiable ya que el usuario puede establecer cualquier período de tiempo como su umbral de doble clic en la configuración de Accesibilidad de su dispositivo.

Sin embargo, si se considera que estos problemas no son una preocupación suficiente, la forma "mejor de la peor" de hacerlo sería implementar manualmente comprobaciones de doble clic.

 export const createTag = (name) => { const tag = document.createElement('span'); tag.innerHTML = name; const clickHander = () => { search.value = tag.innerHTML; const keyboardEvent = new KeyboardEvent('keypress', { code: 'Enter', key: 'Enter', charCode: 13, keyCode: 13, view: window, bubbles: true, }); storeTags.splice(storeTags.indexOf(name), 1); storeTags.unshift(name); search.dispatchEvent(keyboardEvent); }; const dblClickHandler = () => { tags.removeChild(tag); storeTags.splice(storeTags.indexOf(name), 1); }; let clickTimer; tag.addEventListener('click', () => { if( clickTimer) { clearTimeout(clickTimer); dblClickHandler(); clickTimer = null; } else { clickTimer = setTimeout(() => { clickHandler(); clickTimer = null; }, 500); } }); return tag; };

Ajuste el temporizador como le parezca apropiado. Los números más pequeños darán lugar a clics con mayor capacidad de respuesta, pero harán que hacer doble clic sea más difícil para las personas con movilidad reducida.

Realmente recomendaría encarecidamente usar una interfaz de usuario diferente aquí. Sobrecargar clics de esta manera es una muy mala idea en general.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda