加载中...

mouseout()


概述    .mouseout( handler(eventObject) )

返回值:jQuery

描述:为 JavaScript 的 "mouseout" 事件绑定一个处理函数,或者触发元素上的该事件。(手册网注:支持事件冒泡)

  • V : 1.0.mouseout( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • V : 1.4.3.mouseout( [eventData ], handler(eventObject) )

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

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

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

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

举例来说,请看下面的HTML:

  1. <div id="outer">
  2. Outer
  3. <div id="inner">
  4. Inner
  5. </div>
  6. </div>
  7. <div id="other">
  8. Trigger the handler
  9. </div>
  10. <div id="log"></div>
图1 - 渲染后的HTML插图

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

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

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

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

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

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

Additional Notes(其他注意事项):

  • .mouseout()方法只是作为.on( "mouseout", handler )的一个速记写法,移除该事件可以使用.off( "mouseout" )

示例

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

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

运行一下


还没有评论.