Использование наведения вызывает ошибку jquery-migrate (jquery 1.9)

Продолжение вопроса - замена для hover() в jquery1.9?

если .hover() все еще должен нормально работать с 1.9, я вижу приведенную ниже ошибку в консоли, чтобы заменить наведение на mouseenter, mouseleave.

Скриншот кода и ошибки ниже

  this.handle=this.handles.eq(0);

this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass ("состояние пользовательского интерфейса при наведении")}

введите здесь описание изображения


person KeenUser    schedule 13.03.2014    source источник
comment
Можете ли вы опубликовать полный код, который выдает предупреждение? Я не думаю, что предупреждение выдается из-за .hover. Предупреждение говорит о Псевдособытии.   -  person Barry Meijer    schedule 13.03.2014
comment
сложно выложить весь код, там столько js файлов, но ссылки на ховеры везде так выглядят   -  person KeenUser    schedule 13.03.2014


Ответы (2)


.hover() по-прежнему поддерживается, это псевдособытие было удалено.

Например

.bind( "hover", function() {})

следует заменить на

.bind( "mouseenter mouseleave", function() {})

ссылка: http://jquery.com/upgrade-guide/1.9/#quot-hover-quot-pseudo-event

person anderssonola    schedule 13.03.2014
comment
не вижу ссылки на .bind(hover) в js - person KeenUser; 13.03.2014
comment
любые другие подобные ссылки, которые мне, возможно, придется проверить в коде? Я проверил .on(hover,delagte(hover) и теперь связываю, ни на одну из них не ссылаются - person KeenUser; 13.03.2014
comment
это не просто .bind() может быть .on(hover), делегат(hover) и т. д. Просто попробуйте поискать hover в исходном коде? - person anderssonola; 13.03.2014
comment
Вы также искали «зависание»? - person anderssonola; 13.03.2014
comment
Я вижу что-то вроде этого -f(m).delegate(.t-button, hover в js-файле телерика, это может быть проблемой, верно? - person KeenUser; 13.03.2014
comment
да, попробуйте изменить его на делегировать (.t-button, mouseenter mouseleave вместо этого? - person anderssonola; 13.03.2014
comment
Я вижу что-то вроде этого - function(){k(hover,d(this))}); это тоже надо заменить? - person KeenUser; 13.03.2014
comment
Возможно, но это похоже на минимизированный скрипт? Я бы предложил изменить в первоисточнике - person anderssonola; 13.03.2014
comment
давайте продолжим это обсуждение в чате - person KeenUser; 13.03.2014

Немного сложно ответить на этот вопрос, потому что вы уже знаете, что устарело, а что нет в вашем вопросе. Но что вы действительно хотите знать, так это то, почему ваш код выдает предупреждение, когда в коде все выглядит нормально.

Итак, мы должны выяснить, что происходит в вашем коде. Например, к чему относится этот фрагмент кода? Что такое «onHover» в вашем коде?

this.element.hover(this.options.onHover);

Для справки: http://api.jquery.com/on/#additional-notes "Устарело в jQuery 1.8, удалено в 1.9: имя "hover", используемое в качестве сокращения для строки "mouseenter mouseleave". Оно прикрепляет один обработчик событий для этих двух событий, и обработчик должен проверять event.type чтобы определить, является ли событие событием mouseenter или mouseleave. Не путайте имя псевдособытия "hover" с методом .hover(), который принимает одну или две функции."

person Barry Meijer    schedule 13.03.2014
comment
Что ж, я считаю, что это может быть не тот код, который может вызывать ошибку, я вижу какой-то код, например f(m).delegate(.t-button,hover, где присутствует проблема. Но как я могу это сделать исчерпывающий, как мне искать все возможные события psuedo hover в моем коде?Это огромное приложение плюс много стороннего кода (телерик и т. д.) - person KeenUser; 13.03.2014
comment
Вы можете выполнить поиск по всем вашим файлам в поисках наведения (с кавычками). - person Barry Meijer; 13.03.2014