Які відмінності між jQuery .mouseover()та .hover()функціями? Якщо вони абсолютно однакові, чому jQuery використовує обидва?
Які відмінності між jQuery .mouseover()та .hover()функціями? Якщо вони абсолютно однакові, чому jQuery використовує обидва?
Відповіді:
.mouseover().hover() Прив’яжіть один або два обробники до відповідних елементів, які потрібно виконати, коли вказівник миші
входить і залишає елементи.
Виклик $(selector).hover(handlerIn, handlerOut)є скороченим для:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
Прив’яжіть обробник подій, який буде запущений, коли миша вводить елемент або запускає цей обробник на елемент.
mouseoverспрацьовує, коли вказівник також переміщується в дочірній елемент, тоді як він mouseenterспрацьовує лише тоді, коли вказівник переміщується у пов'язаний елемент.
З - за цього, .mouseover()це НЕ те ж саме , як .hover(), з тієї ж причини , .mouseover()це НЕ те ж саме .mouseenter().
$('selector').mouseover(over_function) // may fire multiple times
// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function)
.hover()функція приймає два аргументи функції, один для mouseenterподії та один для mouseleaveподії.
Ви можете спробувати його http://api.jquery.com/mouseover/ на сторінці документа jQuery. Це хороша маленька, інтерактивна демонстрація, яка робить це дуже зрозумілим, і ви насправді можете самі переконатися.
Коротше кажучи, ви помітите, що подія миші над елементом відбувається на елементі, коли ви перебуваєте над ним - надходить або від його дочірнього, або батьківського елемента, але подія введення миші відбувається лише тоді, коли миша переходить від батьківського елемента до елемента.
З офіційних документів: ( http://api.jquery.com/hover/ )
Метод .hover () пов'язує обробники як для подій миші, так і для миші. Ви можете використовувати його, щоб просто застосувати поведінку до елемента в той час, коли миша знаходиться в межах елемента.
Як ви можете прочитати на http://api.jquery.com/mouseenter/
Подія JavaScript mouseenter є власником Internet Explorer. Через загальну корисність події, jQuery моделює цю подію, щоб її можна було використовувати незалежно від браузера. Ця подія надсилається елементу, коли вказівник миші вводить елемент. Будь-який елемент HTML може отримати цю подію.