--- title: 'Element: mouseout 事件' slug: Web/API/Element/mouseout_event tags: - API - DOM - Event - Interface - MouseEvent - Reference - events - mouseout - 事件 - 参考 - 接口 translation_of: Web/API/Element/mouseout_event ---
当移动指针设备(通常是鼠标),使指针不再包含在这个元素或其子元素中时,mouseout 事件被触发。当指针从一个元素移入其子元素时,mouseout 也会被触发,因为子元素遮盖了父元素的可视区域。
| Bubbles | Yes |
|---|---|
| Cancelable | Yes |
| Interface | {{domxref("MouseEvent")}} |
| Event handler property | {{domxref("GlobalEventHandlers.onmouseout", "onmouseout")}} |
以下示例将说明如何使用 mouseout 事件。
以下示例说明了 mouseout 和 mouseleave 事件的区别。当鼠标离开<ul> 时,mouseleave 事件会添加到 {{HTMLElement("ul")}} 以将列表变成紫色。mouseout 在鼠标移出目标元素时被添加到列表,以将目标元素变成橙色。
当你尝试的时候,你会发现 mouseout 被添加到单个列表项目上,而 mouseleave 则应用于整个列表,这取决于列表项目的层次关系,而列表项目遮盖了底层的 <ul>。
<ul id="test"> <li>item 1</li> <li>item 2</li> <li>item 3</li> </ul>
let test = document.getElementById("test");
// 当鼠标移出<ul>元素时,短暂地将列表变成紫色
test.addEventListener("mouseleave", function( event ) {
// 高亮mouseleave的目标
event.target.style.color = "purple";
// 延迟一秒后重置颜色
setTimeout(function() {
event.target.style.color = "";
}, 1000);
}, false);
// 当鼠标离开<li>元素时,短暂地将其变成橙色
test.addEventListener("mouseout", function( event ) {
// 高亮mouseout的目标
event.target.style.color = "orange";
// 延迟500ms后重置颜色
setTimeout(function() {
event.target.style.color = "";
}, 500);
}, false);
{{EmbedLiveSample("mouseout_and_mouseleave", 640, 200)}}
| 规范 | 状态 |
|---|---|
| {{SpecName('UI Events', '#event-type-mouseout', 'mouseout')}} | {{Spec2('UI Events')}} |
| {{SpecName('DOM3 Events', '#event-type-mouseout', 'mouseout')}} | {{Spec2('DOM3 Events')}} |
{{Compat("api.Element.mouseout_event")}}