Як я не можу коментувати, тому напишу це як відповідь!
Будь ласка, зрозумійте різницю між css-селектором ": hover" та подією hover!
": hover" - це селектор css і справді був видалений із подією при такому використанні $("#elementId").is(":hover")
, але це означає, що це насправді не має нічого спільного з наведенням jQuery події.
якщо ви введете код $("#elementId:hover")
, елемент буде обраний лише при наведенні миші. вищевикладене твердження буде працювати з усіма версіями jQuery як ваш вибір цього елемента з чистим та законним вибором css.
З іншого боку, подія, що є
$("#elementId").hover(
function() {
doSomething();
}
);
насправді застаріло як jQuery 1.8, тут стан із веб-сайту jQuery:
Коли використовується подія "hover", підсистема події перетворює її в "mouseenter mouseleave" у рядку події. Це дратує з кількох причин:
Семантика: Наведення вказівника не є тим, що миша вводить і залишає елемент, це передбачає деяку кількість уповільнення або затримки перед стрільбою. Назва події: Тип події event.type, що повертається приєднаним оброблювачем, не наведення курсору, а або миші, або миші. Жодна інша подія цього не робить. Кооптування імені "hover": Неможливо приєднати подію до імені "hover" та запустити її за допомогою .trigger ("hover"). Документи вже називають це ім'я "сильно відмовленим від нового коду", я б хотів офіційно знестирити його на 1.8 та врешті-решт видалити його.
Чому вони видалили використання (": hover") незрозуміло, але так добре, ви все одно можете використовувати його як вище, і ось невеликий злом, як і раніше його використовувати.
(function ($) {
/**
* :hover selector was removed from jQuery 1.8+ and cannot be used with .is(":hover")
* but using it in this way it works as :hover is css selector!
*
**/
$.fn.isMouseOver = function() {
return $(this).parent().find($(this).selector + ":hover").length > 0;
};
})(jQuery);
О, і я б не рекомендував версію тайм-аута, оскільки це приносить велику складність , використовуйте функції таймауту для подібних матеріалів, якщо немає іншого способу, і повірте, у 95% відсотків випадків є інший спосіб !
Сподіваюся, я можу допомогти пару людей там.
Грець Енді