--- title: MouseEvent slug: Web/API/MouseEvent translation_of: Web/API/MouseEvent ---
{{APIRef("DOM Events")}}
MouseEvent
介面表示了由使用者經指標裝置(如滑鼠)進行互動所發生的事件。常見的 MouseEvent
實作事件包括了 {{event("click")}}、{{event("dblclick")}}、{{event("mouseup")}} 與 {{event("mousedown")}}。
MouseEvent
繼承自 {{domxref("UIEvent")}},而 UIEvent
則繼承自 {{domxref("Event")}}。雖然 {{domxref("MouseEvent.initMouseEvent()")}} 方法仍然向下相容新的瀏覽器,但現今應該使用 {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} 建構式來建立 MouseEvent
物件。
另外還有一些特定的事件繼承自 MouseEvent
:{{domxref("WheelEvent")}} 及 {{domxref("DragEvent")}}。
MouseEvent
物件。此介面也繼承了其父介面 {{domxref("UIEvent")}} 與 {{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).
此介面也繼承了其父介面 {{domxref("UIEvent")}} 與 {{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('CSSOM View','#extensions-to-the-mouseevent-interface', 'MouseEvent')}} | {{Spec2('CSSOM View')}} | Redefines MouseEvent from long to double. This means that a PointerEvent whose pointerType is mouse will be a double. |
{{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('CSSOM View', '#extensions-to-the-mouseevent-interface', 'MouseEvent')}} | {{Spec2('CSSOM View')}} | From {{SpecName('DOM3 Events')}}, added offsetX and offsetY , pageX and pageY , x, and y properties. Redefined screen, page, client and coordinate (x and y) properties as double from long . |
{{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 | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.movementX","movementX")}} {{domxref("MouseEvent.movementY","movementY")}} |
{{CompatChrome(37)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} {{property_prefix("moz")}} | {{ CompatUnknown() }} | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} |
{{ domxref("MouseEvent.buttons", "buttons") }} | {{CompatChrome(43)}} | {{CompatVersionUnknown()}} | {{ CompatVersionUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{CompatNo}} |
{{ domxref("MouseEvent.which", "which") }} | {{CompatChrome(1)}} | {{CompatVersionUnknown()}} | 1.0 | 9.0 | 5.0 | 1.0 |
{{domxref("MouseEvent.getModifierState()", "getModifierState()")}} | {{CompatChrome(47)}} | {{CompatVersionUnknown()}} | {{CompatGeckoDesktop(15)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} |
{{domxref("MouseEvent.mozPressure", "mozPressure")}} and {{domxref("MouseEvent.mozInputSource", "mozInputSource")}} {{non-standard_inline}} | {{CompatNo}} | {{ CompatUnknown() }} | {{CompatGeckoDesktop(2)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
{{domxref("MouseEvent.MouseEvent", "MouseEvent()")}} | {{CompatChrome(45)}} | {{ CompatUnknown() }} | {{CompatGeckoDesktop(11)}} | 9.0 | {{CompatVersionUnknown()}} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.region")}} | {{CompatChrome(51)}}[1] | {{ CompatUnknown() }} | {{CompatGeckoDesktop(32)}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.offsetX")}}, and {{domxref("MouseEvent.offsetY")}} | {{CompatVersionUnknown()}} | 9 | {{CompatGeckoDesktop(40)}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
{{domxref("MouseEvent.screenX")}}, {{domxref("MouseEvent.screenY")}}, {{domxref("MouseEvent.clientX")}}, and {{domxref("MouseEvent.Y")}} are double instead of long. | {{CompatChrome(56)}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
[1] Requires enabling the ExperimentalCanvasFeatures
flag.