Как я не могу комментировать, поэтому я напишу это как ответ!
Пожалуйста, обратите внимание на разницу между 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 и в конечном итоге удалить его.
blockquote>Почему они удалили использование («: 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% процентов всех случаев есть другой способ!
Надеюсь, я помогу пару людей там.
Greetz Andy