浅谈mouseover和mouseenter及hover鼠标移入事件的异同点

mouseover和mouseout

mouseover

概述

在每一个匹配元素的mouseover事件中绑定一个处理函数。mouseover事件会在鼠标移入对象时触发。

mouseout

概述

在每一个匹配元素的mouseout事件中绑定一个处理函数。mouseout事件在鼠标从元素上离开后会触发。

mouseenter和mouseleave

mouseenter

概述

当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。

mouseleave

概述

当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用。与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。

hover

概述

一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测(例如,处在div中的图像),如果是,则会继续保持“悬停”状态,而不触发移出事件(修正了使用mouseout事件的一个常见错误)。

下面是代码及演示效果:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>鼠标移入移出</title>
		<style>
			.out {
				margin: auto;
				width: 200px;
				height: 200px;
				background: blue;
			}

			.inner {
				position: absolute;
				width: 100px;
				height: 100px;
				top: 50px;
				background: red;
			}
		</style>
	</head>
	<body>
		<div class="out">父div
			<div class="inner">子div</div>
		</div>
		<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
		<script type="text/javascript">
			let $out = $('.out')
			$out.mouseenter(function() {
				console.log("mouseenter:移入");
			}).mouseleave(function() {
				console.log("mouseleave:移出");
			});

			$out.mouseover(function() {
				console.log("mouseover:移入");
			}).mouseout(function() {
				console.log("mouseout:移出");
			});

			$out.hover(function() {
				console.log("hover:移入");
			}, function() {
				console.log("hover:移出");
			});
		</script>
	</body>
</html>

演示效果

mouseover和mouseout:当鼠标移入移出元素或子元素都会触发事件。(支持冒泡)
mouseenter和mouseleave:当鼠标移入移出元素才会触发事件。(不支持冒泡)
hover的效果等同于mouseenter,mouseleave。

学习记录,还望指正!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值