# .mouseout()

所属分类：事件 > 鼠标事件 英文文档：.mouseout()

## .mouseout( handler(eventObject) )返回: jQuery

描述: 为 JavaScript 的 "mouseout" 事件绑定一个处理函数，或者触发元素上的该事件。（注：支持事件冒泡）

- #### 添加的版本: 1.0.mouseout( handler(eventObject) )

  - handler(eventObject)
    类型: Function()
    每次事件触发时会执行的函数。

- #### 添加的版本: 1.4.3.mouseout( [eventData ], handler(eventObject) )

  - eventData
    类型: PlainObject
    一个对象，它包含的数据键值对映射将被传递给事件处理程序。
  - handler(eventObject)
    类型: Function()
    每次事件触发时会执行的函数。

- #### 添加的版本: 1.0.mouseout()

  - 这个方法不接受任何参数。

这个方法的前两个用法是 `.bind('mouseout', handler)` 的快捷方式，第3个不带参数的用法是 `.trigger('mouseout')` 的快捷方式。

当鼠标指针离开元素时，`mouseout`事件就会被触发，任何HTML元素都可以接受此事件。

举例来说，请看下面的HTML：

1 2 3 4 5 6 7 8 9 10 |
    <div id="outer">  Outer  <div id="inner">    Inner  </div></div><div id="other">  Trigger the handler</div><div id="log"></div>

这个事件可以绑定到任何元素:

1 2 3 |
    $('#outer').mouseout(function() {  $('#log').append('Handler for .mouseout() called.');});

现在当指针在Outer `<div>`元素上移出时，“Handler for .mousedown() called.”这个字符串将被添加到`<div id="log">`。我们可以调用不带参数的 `.mouseout()` 方法，手动触发这个事件：

1 2 3 |
    $('#other').click(function() {  $('#outer').mouseout();});

这些代码执行后，点击Trigger the handler 同样添加这个信息。

由于此事件类型冒泡，可能导致引起的很多头痛的问题。例如，在这个例子中当鼠标指针移出Inner元素，`mouseout`事件将被发送到Inner元素，然后冒泡到Outer元素 。这可能会不合时宜的触发绑定的`mouseout`处理函数。这可以用一个替代方法，见讨论`. mouseleave ()`。

## 例子:

#### 当触发 mouseout 和 mouseleave 事件时，显示鼠标移出对象的次数。当鼠标移出绑定 mouseout 事件元素的子元素时，mouseout 事件同样会被触发。但是，只有在绑定 mouseleave 事件的元素上，将鼠标移出时，才会触发该事件。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
    <!DOCTYPE html><html><head>  <style>div.out {width:40%;height:120px;margin:0 15px;background-color:#D6EDFC;float:left;}div.in {width:60%;height:60%;background-color:#FFCC00;margin:10px auto;}p {line-height:1em;margin:0;padding:0;}</style>  <script src="https://code.jquery.com/jquery-latest.js"></script></head><body> <div class="out overout"><p>move your mouse</p><div class="in overout"><p>move your mouse</p><p>0</p></div><p>0</p></div> <div class="out enterleave"><p>move your mouse</p><div class="in enterleave"><p>move your mouse</p><p>0</p></div><p>0</p></div>  <script>var i = 0;$("div.overout").mouseout(function(){  $("p:first",this).text("mouse out");  $("p:last",this).text(++i);}).mouseover(function(){  $("p:first",this).text("mouse over");}); var n = 0;$("div.enterleave").bind("mouseenter",function(){  $("p:first",this).text("mouse enter");}).bind("mouseleave",function(){  $("p:first",this).text("mouse leave");  $("p:last",this).text(++n);}); </script> </body></html>

#### Demo: