files/en-us/web/api/element/beforexrselect_event/index.md
{{APIRef("WebXR Device API")}}{{SeeCompatTable}}
The beforexrselect event is fired before WebXR select events ({{domxref("XRSession/select_event", "select")}}, {{domxref("XRSession/selectstart_event", "selectstart")}}, {{domxref("XRSession/selectend_event", "selectend")}}) are dispatched. It can be used to suppress XR world input events while the user is interacting with a DOM overlay UI.
This event bubbles, is cancelable and is composed.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("beforexrselect", (event) => { })
onbeforexrselect = (event) => { }
An {{domxref("XRSessionEvent")}}. Inherits from {{domxref("Event")}}.
{{InheritanceDiagram("XRSessionEvent")}}
The beforexrselect event is a global event and available to the following interfaces:
To suppress WebXR select events ({{domxref("XRSession/select_event", "select")}}, {{domxref("XRSession/selectstart_event", "selectstart")}}, {{domxref("XRSession/selectend_event", "selectend")}}), an application can listen for the beforexrselect event. The event bubbles, so a call to {{domxref("Event/preventDefault", "preventDefault()")}} on the DOM overlay element will prevent any WebXR select events within this container allowing interaction with the DOM element and avoiding duplicate event input to the XR world.
document
.getElementById("xr-overlay")
.addEventListener("beforexrselect", (ev) => ev.preventDefault());
{{Specifications}}
{{Compat}}