简单介绍:
js中有两组鼠标移入移出事件:(旧的)mouseover、mouseout与(新的)mouseenter、mouseleave,不建议混着使用。
两者的区别是,新的鼠标移入移出事件,去掉了冒泡和捕获的特性。而旧的鼠标移入移出事件,是存在这个特性的。他们并不存好坏,一切根据需求来使用。
两组事件的区别:
先说旧的事件,我们在给元素绑定事件时:
let box1 = document.querySelector(".box1")
// 绑定事件方式1
box1.onmouseover = function() {
console.log("???????")
}
// 绑定事件方式2
box1.addEventListener("mouseover",function(event) {
console.log("???????")
})
不管那种绑定事件方式,现在dom元素已经被监听了。只要鼠标满足条件(mouseover),事件处理函数,就会被执行。mouseover指的是:任意另一个除了box1以外的dom元素,移动到事件绑定的box1元素上时,事件处理函数就会被执行,这是事件执行机制。
至于冒泡、捕获,就是从内向外冒泡或从外向内捕获的执行机制:
<div class="box1">
<div class="box2"></div>
</div>
现在我们给box1绑定的鼠标事件,此时我们鼠标移动到box2上时,box1的事件处理函数也会被执行,这就是从内向外冒泡的执行机制。并且box2的外层如果还有鼠标移入事件的话,其对应的事件处理函数也会被执行,直至根标签html。
如果觉得这种不断向外的冒泡执行机制很烦,只希望外部dom元素移动到box1元素内部以后,才执行事件处理函数。此时就可以使用新的事件 mouseenter。文章来源:https://www.toymoban.com/news/detail-514290.html
大概这些。文章来源地址https://www.toymoban.com/news/detail-514290.html
到了这里,关于鼠标移入移出事件,mouseover、mouseenter区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!