返回介绍

.mouseover()

发布于 2017-09-11 17:04:53 字数 3307 浏览 1038 评论 0 收藏 0

所属分类:事件 > 鼠标事件

.mouseover( handler(eventObject) )返回: jQuery

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

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

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

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

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

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

当鼠标指针进入元素内时,mouseover事件就会被触发,任何HTML元素都可以接受此事件。

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

<div id="outer">
  Outer
  <div id="inner">
    Inner
  </div>
</div>
<div id="other">
  Trigger the handler
</div>
<div id="log"></div>

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

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

现在当指针进入Outer <div>元素时,“Handler for .mousedown() called.”这个字符串将被添加到<div id="log">。我们也可以通过点击其它元素,手动触发另一个元素上的该事件:

$('#other').click(function() {
      $('#outer').mouseover();
      });

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

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

例子:

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

<!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="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
 
<div class="out overout">
  <span>move your mouse</span>
  <div class="in">
  </div>
</div>
 
<div class="out enterleave">
  <span>move your mouse</span>
  <div class="in">
  </div>
</div>
 
<script>
  var i = 0;
  $("div.overout").mouseover(function() {
    i += 1;
    $(this).find("span").text( "mouse over x " + i );
  }).mouseout(function(){
    $(this).find("span").text("mouse out ");
  });
 
  var n = 0;
  $("div.enterleave").mouseenter(function() {
    n += 1;
    $(this).find("span").text( "mouse enter x " + n );
  }).mouseleave(function() {
    $(this).find("span").text("mouse leave");
  });
 
</script>
 
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文