Поскольку я не могу комментировать, я напишу это как ответ!
Пожалуйста, поймите разницу между css selector ": hover" и событием hover!
": hover" является селектором css и действительно был удален вместе с событием при его использовании таким образом $("#elementId").is(":hover")
, но это означает, что он не имеет никакого отношения к наведению на jQuery.
если вы кодируете $("#elementId:hover")
, элемент будет выделен только при наведении курсора мыши. Вышеприведенный оператор будет работать со всеми версиями jQuery, так как вы выбираете этот элемент с чистым и законным выбором CSS.
С другой стороны, событие наведения, которое
$("#elementId").hover(
function() {
doSomething();
}
);
действительно истолковывается как jQuery 1.8, здесь состояние с сайта jQuery:
Когда используется имя события «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% процентов всех случаев есть другой путь !
Надеюсь, я смогу помочь парочке людей там.
Привет Энди