Quiero obtener y mantener solo el elemento de destino original de un evento de mousedown , pero a medida que el usuario mantiene presionado el mouse, event.target cambia según lo que esté debajo del puntero.
Hay una propiedad event.originalTarget que hace exactamente lo que quiero, pero solo es compatible con Firefox (referencia: https://developer.mozilla.org/en-US/docs/Web/API/Event/originalTarget ).
¿Cómo puedo replicar este comportamiento usando event.target estándar?
Lo descubrí: necesita crear banderas fuera del detector de eventos.
let el = false let mousedown = false; document.addEventListener('mousedown', ev => { if (!mousedown) { el = ev.target; mousedown = true; } }); document.addEventListener('mouseup', ev => { mousedown = false; el = false; }); Entonces, el se establecerá como el objetivo original durante la duración de mousedown , pero en mouseup , se restablece a nada.