jQuery метод .mouseover()
Определение и применение
jQuery метод .mouseover() привязывает JavaScript обработчик событий "mouseover" (срабатывает, когда указатель мыши входит в элемент), или запускает это событие на выбранный элемент.
jQuery синтаксис:
Синтаксис 1.0:
$( selector ).mouseover() // метод используется без параметров
$( selector ).mouseover( handler )handler - Function( Event eventObject )
Синтаксис 1.4.3:
$( selector ).mouseover( eventData, handler )eventData - Anything
handler - Function( Event eventObject )
Обращаю Ваше внимание, что метод .mouseover(), используемый вместе с функцией, переданной в качестве параметра (handler) является, короткой записью метода .on(), а без параметра является короткой записью метода .trigger():
$( selector ).on( "mouseover", handler )
$( selector ).trigger( "mouseover" )
Добавлен в версии jQuery
1.0 (синтаксис обновлен в версии 1.4.3)Значения параметров
| Параметр | Описание |
|---|---|
| eventData | Объект, содержащий данные, которые будут переданы в обработчик событий. |
| handler |
Функция, которая будет выполнена каждый раз, когда событие срабатывает. Функция в качестве параметра может
принимать объект Event.
|
Пример старого кода
Пример использования jQuery метода .mouseover() (без параметров и с функцией)
Нажмите ▶, затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 3.1.1.
index.html
<button>Клик</button>
<div></div>
main.js
$(document).ready(function () {
$('button').click(function () {
$('div').mouseover()
})
var num = 0
$('div').mouseover(function () {
num++
$('div').text('over ' + num)
})
})
style.css
div {
width: 100px;
height: 100px;
margin-top: 30px;
background: yellow;
}
Нажмите ▶, чтобы запустить пример.
В этом примере с использованием jQuery метода .mouseover() мы при нажатии на элемент
<button>
(кнопка) вызываем событие "mouseover" на элементе
<div>. Самому элементу
<div>
задаем, что при срабатывании события "mouseover" с помощью метода
.text()
выводим текстовое содержимое и значение переменной, которая выступает в роли счетчика. То есть мы вызываем событие
.mouseover() либо при нажатии на кнопку, либо при выхождении указателя мыши из элемента.
Рассмотрим следующий пример в котором сравним разницу в срабатывании событий "mouseenter" и "mouseover":
Отличие mouseenter от mouseover
Нажмите ▶, затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 3.1.1.
index.html
<div class="enter">
<span>mouseenter - </span>
<div></div>
</div>
<div class="over">
<span>mouseover - </span>
<div></div>
</div>
main.js
$(document).ready(function () {
var enter = 0
$('.enter').mouseenter(function () {
enter++
$('.enter span').text('mouseenter - ' + enter)
})
var over = 0
$('.over').mouseover(function () {
over++
$('.over span').text('mouseover - ' + over)
})
})
style.css
div {
width: 200px;
height: 200px;
margin: 25px 45px;
background: yellow;
display: inline-block;
text-align: center;
}
div > div {
width: 100px;
height: 100px;
background: green;
}
Нажмите ▶, чтобы запустить пример.
В этом примере для демонстрации отличий между событиями "mouseenter" и "mouseover" мы создали два отдельних родительских блока, содержащих в себе дочерние блоки. Обратите внимание, что событие "mouseover" срабатывает даже тогда, когда указатель мыши переходит с родительского элемента на дочерний (вложенный) и с дочернего элемента обратно на родительский не смотря на то, что указатель в этот момент не покидал пределы родительского элемента (event bubbling), а событие "mouseenter" срабатывает только когда указатель входит на родительский элемент, независимо от того перемещается он по дочерним элементам, или нет.