Estoy construyendo un sitio web en js/html/css. Para jugar parte de mi juego, el usuario debe mantener presionada la pantalla. De forma predeterminada, se resaltará el área de reproducción, por lo que al hacer clic o tocar eventos, quiero usar un event.preventdefault() . El problema entonces es que el usuario no puede hacer clic en otros botones de la página.
¿Hay alguna manera de evitar el valor predeterminado al hacer clic y mantener presionado, pero también permitir que los botones funcionen normalmente?
Creo que algo como esto podría funcionar. Básicamente, usar una variable booleana para detectar si se ha hecho clic en un botón específico y luego agregar una declaración condicional a e.preventDefault() para que cuando se haga clic en el botón no se vea afectado por e.preventDefault()
let isClicked = false document.getElementById('myBtn').addEventListener('click', () => { isClicked = true setTimeOut(() => { isClicked = false }, 100) }) function myPreventDefaultFunction(e){ if(isClicked){ // do something } else{ e.preventDefault() } }