Які відмінності між 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 може отримати цю подію.