当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .mouseenter()用法及代码示例


用法
.mouseenter( handler ) => jQuery

说明:绑定一个事件处理程序,当鼠标进入一个元素时触发,或者在一个元素上触发该处理程序。

  • 添加的版本:1.0.mouseenter( handler )

    • handler
      类型:Function(Event eventObject)
      每次触发事件时执行的函数。
  • 添加的版本:1.4.3.mouseenter( [eventData ], handler )

    • eventData
      类型:Anything
      包含将传递给事件处理程序的数据的对象。
    • handler
      类型:Function(Event eventObject)
      每次触发事件时执行的函数。
  • 添加的版本:1.0.mouseenter()

    • 此签名不接受任何参数。

此方法是前两个变体中.on( "mouseenter", handler ) 和第三个变体中.trigger( "mouseenter" ) 的快捷方式。

mouseenter JavaScript 事件是 Internet Explorer 专有的。由于事件的通用性,jQuery 模拟了这个事件,因此无论浏览器如何都可以使用它。当鼠标指针进入元素时,该事件被发送到元素。任何 HTML 元素都可以接收此事件。

例如,考虑 HTML:

<div id="outer">
  Outer
  <div id="inner">
    Inner
  </div>
</div>
<div id="other">
  Trigger the handler
</div>
<div id="log"></div>
图 1 - 呈现的 HTML 的插图

事件处理程序可以绑定到任何元素:

$( "#outer" ).mouseenter(function() {
  $( "#log" ).append( "<div>Handler for .mouseenter() called.</div>" );
});

现在当鼠标指针移到 <div>, 消息被附加到<div id="log">.您还可以在单击另一个元素时触发事件:

$( "#other" ).click(function() {
  $( "#outer" ).mouseenter();
});

这段代码执行后,点击触发处理程序还将附加消息。

mouseenter事件不同于mouseover它处理事件冒泡的方式。如果mouseover在此示例中使用,然后当鼠标指针移到元素,将触发处理程序。这通常是不受欢迎的行为。这mouseenter另一方面,事件仅在鼠标进入它绑定的元素时触发其处理程序,而不是后代。所以在这个例子中,当鼠标进入元素,但不是元素。

其他注意事项:

  • 由于 .mouseenter() 方法只是 .on( "mouseenter", handler ) 的简写,因此可以使用 .off( "mouseenter" ) 进行分离。

例子:

在 mouseenter 和 mouseout 事件触发时显示文本。 mouseover 在指针移入子元素时触发,而 mouseenter 仅在指针移入绑定元素时触发。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>mouseenter demo</title>
  <style>
  div.out {
    width: 40%;
    height: 120px;
    margin: 0 15px;
    background-color: #d6edfc;
    float: left;
  }
  div.in {
    width: 60%;
    height: 60%;
    background-color: #fc0;
    margin: 10px auto;
  }
  p {
    line-height: 1em;
    margin: 0;
    padding: 0;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.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" )
  .mouseover(function() {
    $( "p", this ).first().text( "mouse over" );
    $( "p", this ).last().text( ++i );
  })
  .mouseout(function() {
    $( "p", this ).first().text( "mouse out" );
  });
 
var n = 0;
$( "div.enterleave" )
  .mouseenter(function() {
    $( "p", this ).first().text( "mouse enter" );
    $( "p", this ).last().text( ++n );
  })
  .mouseleave(function() {
    $( "p", this ).first().text( "mouse leave" );
  });
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .mouseenter()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。