files/en-us/web/api/xrsession/squeezeend_event/index.md
{{APIRef("WebXR Device API")}}{{SeeCompatTable}}{{SecureContext_Header}}
The WebXR event squeezeend is sent to an {{domxref("XRSession")}} when one of its input sources ends its primary action or when an input source that's in the process of handling an ongoing primary action is disconnected without successfully completing the action.
Primary squeeze actions include things like users pressing triggers or buttons, tapping a touchpad, speaking a command, or performing a recognizable gesture when using a video tracking system or handheld controller with an accelerometer.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("squeezeend", (event) => { })
onsqueezeend = (event) => { }
An {{domxref("XRInputSourceEvent")}}. Inherits from {{domxref("Event")}}.
{{InheritanceDiagram("XRInputSourceEvent")}}
In addition to the properties listed below, properties from the parent interface, {{domxref("Event")}}, are available.
Triggered when users stop squeezing the controller, making a hand gesture that mimes grabbing something, or using (squeezing) a trigger.
The {{domxref("XRSession.squeezestart_event", "squeezestart")}} event is sent indicating that the user has begun a squeeze action.
If the primary squeeze action ends successfully, the session is sent a {{domxref("XRSession.squeeze_event", "squeeze")}} event.
A squeezeend event is sent to indicate that the squeeze action is no longer underway. This is sent whether the squeeze action succeeded or not.
See the squeezestart event for example code.
{{Specifications}}
{{Compat}}