Ви можете спробувати наступний приклад на сторінці документа jQuery . Це хороша маленька, інтерактивна демонстрація, яка робить це дуже зрозумілим, і ви насправді можете самі переконатися.
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");
});
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;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>
Коротше кажучи, ви помітите, що подія миші над елементом відбувається, коли ви перебуваєте над ним - надходить або від його дочірнього АБО батьківського елемента, але подія введення миші відбувається лише тоді, коли миша рухається з-за меж цього елемента до цього елемента.
Або, якmouseover()
висловлюються документи :
[ .mouseover()
] може викликати багато головних болів через бурхливість подій. Наприклад, коли в цьому прикладі вказівник миші переміщається над Внутрішнім елементом, на нього буде надіслана подія миші, а потім прокручуємо до Зовнішньої. Це може спровокувати наш зв'язаний обробник миші в невідповідний час. Дивіться обговорення для .mouseenter()
корисної альтернативи.
mouseenter
"відбувається лише тоді, коли миша переходить від батьківського елемента до елемента". Подія відбувається, коли миша переходить від елемента, що знаходиться поза елементом, до його всередині. Не має значення, з якого елемента мишка взялася. Це правда, що миша часто буде надходити від батьків, але не завжди. Наприклад, якщо батько не має відступів або кордонів, то миша може увійти прямо з прабатьків, і по-mouseenter
, як і раніше буде стріляти. Насправді він навіть може вводити елемент поза вікном перегляду (якщо елемент знаходиться прямо на краю), і подія все ще запускається.