簡單介紹:
????????js中有兩組鼠標移入移出事件:(舊的)mouseover、mouseout與(新的)mouseenter、mouseleave,不建議混著使用。
? ? ? ? 兩者的區(qū)別是,新的鼠標移入移出事件,去掉了冒泡和捕獲的特性。而舊的鼠標移入移出事件,是存在這個特性的。他們并不存好壞,一切根據(jù)需求來使用。
兩組事件的區(qū)別:
? ? ? ? 先說舊的事件,我們在給元素綁定事件時:
let box1 = document.querySelector(".box1")
// 綁定事件方式1
box1.onmouseover = function() {
console.log("???????")
}
// 綁定事件方式2
box1.addEventListener("mouseover",function(event) {
console.log("???????")
})
? ? ? ? 不管那種綁定事件方式,現(xiàn)在dom元素已經(jīng)被監(jiān)聽了。只要鼠標滿足條件(mouseover),事件處理函數(shù),就會被執(zhí)行。mouseover指的是:任意另一個除了box1以外的dom元素,移動到事件綁定的box1元素上時,事件處理函數(shù)就會被執(zhí)行,這是事件執(zhí)行機制。
? ? ? ? 至于冒泡、捕獲,就是從內(nèi)向外冒泡或從外向內(nèi)捕獲的執(zhí)行機制:
<div class="box1">
<div class="box2"></div>
</div>
? ? ? ? 現(xiàn)在我們給box1綁定的鼠標事件,此時我們鼠標移動到box2上時,box1的事件處理函數(shù)也會被執(zhí)行,這就是從內(nèi)向外冒泡的執(zhí)行機制。并且box2的外層如果還有鼠標移入事件的話,其對應(yīng)的事件處理函數(shù)也會被執(zhí)行,直至根標簽html。
????????如果覺得這種不斷向外的冒泡執(zhí)行機制很煩,只希望外部dom元素移動到box1元素內(nèi)部以后,才執(zhí)行事件處理函數(shù)。此時就可以使用新的事件 mouseenter。文章來源:http://www.zghlxwxcb.cn/news/detail-514290.html
? ? ? ? 大概這些。文章來源地址http://www.zghlxwxcb.cn/news/detail-514290.html
到了這里,關(guān)于鼠標移入移出事件,mouseover、mouseenter區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!