--- title: MouseEvent slug: Web/API/MouseEvent tags: - API translation_of: Web/API/MouseEvent ---
{{APIRef("DOM Events")}}
The MouseEvent
interface represents events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include {{event("click")}}, {{event("dblclick")}}, {{event("mouseup")}}, {{event("mousedown")}}.
MouseEvent
derives from {{domxref("UIEvent")}}, which in turn derives from {{domxref("Event")}}. Though the {{domxref("MouseEvent.initMouseEvent()")}} method is kept for backward compatibility, creating of a MouseEvent
object should be done using the {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} constructor.
Several more specific events derivate from MouseEvent
: {{domxref("WheelEvent")}} and {{domxref("DragEvent")}}.
MouseEvent
object.This interface also inherits properties of its parents, {{domxref("UIEvent")}} and {{domxref("Event")}}.
true
if the alt key was down when the mouse event was fired.The buttons being pressed when the mouse event was fired
true
if the control key was down when the mouse event was fired.true
if the meta key was down when the mouse event was fired.null
is returned.The secondary target for the event, if there is one.
true
if the shift key was down when the mouse event was fired.0.0
(minimum pressure) and 1.0
(maximum pressure).The type of device that generated the event (one of the MOZ_SOURCE_*
constants listed below). This lets you, for example, determine whether a mouse event was generated by an actual mouse or by a touch event (which might affect the degree of accuracy with which you interpret the coordinates associated with the event). The possible values are:
Constant name | Value | Desription |
---|---|---|
MouseEvent.MOZ_SOURCE_UNKNOWN |
0 | The input device is unknown. |
|
1 | The event was generated by a mouse (or mouse-like device). |
|
2 | The event was generated by a pen on a tablet. |
|
3 | The event was generated by an eraser on a tablet. |
|
4 | The event was generated by a cursor. |
|
5 | The event was generated on a touch interface. |
|
6 | The event was generated by a keyboard. |
This interface also inherits methods of its parents, {{domxref("UIEvent")}} and {{domxref("Event")}}.
MouseEvent
created. If the event has already being dispatched, this method does nothing.This example demonstrates simulating a click (that is programmatically generating a click event) on a checkbox using DOM methods.
function simulateClick() { var evt = new MouseEvent("click", { bubbles: true, cancelable: true, view: window, }); var cb = document.getElementById("checkbox"); //element to click on var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } } document.getElementById("button").addEventListener('click', simulateClick);
<p><label><input type="checkbox" id="checkbox"> Checked</label> <p><button id="button">Click me</button>
Click on the button to see how the sample works:
{{ EmbedLiveSample('Example', '', '', '') }}
Specification | Status | Comment |
---|---|---|
{{SpecName("HTML WHATWG", "#dom-mouseevent-region", "MouseEvent.region")}} | {{Spec2('HTML WHATWG')}} | From {{SpecName('DOM3 Events')}}, added the region property. |
{{SpecName('Pointer Lock','#extensions-to-the-mouseevent-interface','MouseEvent')}} | {{Spec2('Pointer Lock')}} | From {{SpecName('DOM3 Events')}}, added movementX and movementY properties. |
{{SpecName('DOM3 Events','#events-mouseevents','MouseEvent')}} | {{Spec2('DOM3 Events')}} | From {{SpecName('DOM2 Events')}}, added the MouseEvent() constructor, the getModifierState() method and the buttons property. |
{{SpecName('DOM2 Events','#Events-MouseEvent','MouseEvent')}} | {{Spec2('DOM2 Events')}} | Initial definition. |
{{ CompatibilityTable() }}
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.movementX","movementX")}} {{domxref("MouseEvent.movementY","movementY")}} |
{{CompatVersionUnknown()}} {{property_prefix("moz")}} | {{CompatVersionUnknown()}} {{property_prefix("webkit")}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
{{ domxref("MouseEvent.buttons", "buttons") }} | {{ CompatVersionUnknown() }} | {{ CompatNo() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
{{ domxref("MouseEvent.which", "which") }} | 1.0 | 1.0 | 9.0 | 5.0 | 1.0 |
{{domxref("MouseEvent.getModifierState()", "getModifierState()")}} | {{CompatGeckoDesktop(15)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.mozPressure", "mozPressure")}} and {{domxref("MouseEvent.mozInputSource", "mozInputSource")}} {{non-standard_inline}} | {{CompatGeckoDesktop(2)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
{{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} | {{CompatGeckoDesktop(11)}} | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.region")}} | {{CompatGeckoDesktop(32)}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |