Поскольку я не могу комментировать, я напишу это как ответ!
Пожалуйста, поймите разницу между селектором CSS ": 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, а либо mouseenter, либо mouseleave. Никакое другое мероприятие этого не делает. Взаимодействие с именем «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% процентов всех случаев есть другой способ!
Надеюсь, что смогу помочь парочке людей.
Гретц Энди
person
Phenix
schedule
20.07.2014