Я только что заметил, что я получаю тонны устаревших предупреждений в последней сборке Chrome.
event.layerX и event.layerY не работают и не рекомендуются в WebKit. Они будут сняты с двигателя в ближайшее время.
Похоже, jQuery все испортил.
Я использую: jquery-1.6.1.min.js
.
Поможет ли это обновить до последней версии jQuery или еще не исправлено, или это ошибка Chrome, или это что-то еще?
PS
Я не могу показать вам код, потому что я думаю, что это общая ошибка, но я подозреваю, что предупреждения появляются, когда я пытаюсь получить доступ к объекту jQuery или когда jQuery пытается получить доступ к layerX / layerY (ну, я вполне уверен, что это так, учитывая ошибка: P).
jQuery, вероятно, копирует эти свойства в объект jQuery.
Так...
В чем дело?
РЕДАКТИРОВАТЬ
jQuery 1.7 вышел и исправляет эту проблему.
Узнайте больше на их блоге, здесь .
источник
@
для подавления ошибок.layerX
иlayerY
, по крайней мере , пока они не дают более тщательного рассмотрения. Стоит также отметить, что IE недавно был добавленlayerX
иlayerY
после того, как его не было до версии 9. Я предполагаю, что эти свойства не исчезнут - по крайней мере, пока не появится подходящая замена W3C, которая будет не скоро. Предупреждения исчезли в последних версиях WebKit.Ответы:
В чем дело!?
msgstr "jQuery, вероятно, копирует эти свойства в объект jQuery." Вы абсолютно правы, так что, похоже, вы уже знаете! :)
Надеюсь, jQuery обновит свой код, чтобы перестать касаться этого, но в то же время WebKit должен был знать об этом лучше, чем записывать предупреждение об устаревании события (по крайней мере, на мой взгляд). Один обработчик перемещения мыши и ваша консоль взрывается. :)
Вот недавний билет jQuery: http://bugs.jquery.com/ticket/10531
ОБНОВЛЕНИЕ: Это исправлено сейчас, если вы обновляетесь до jQuery 1.7.
Обратите внимание, что если обновление jQuery не решит проблему для вас, это может быть связано с используемыми расширениями / плагинами, как сказал Джейк в своем ответе .
источник
http://jsperf.com/removing-event-props/2
Временное исправление состоит в том, чтобы запустить этот код, прежде чем выполнять привязку к событию через jQuery:
ОБНОВИТЬ
Посмотрите последние тесты производительности, чтобы выяснить, какой самый быстрый способ удалить события событий.
источник
Самое короткое решение для этого - это одна строка:
источник
Огромное количество этих сообщений (я только что получил 80000 при использовании gmail) действительно является ошибкой в Chrome.
Вы должны отметить вопрос о Chromium .
источник
Это также может быть вызвано расширениями Chrome, поэтому проверьте их, если обновление jQuery не работает.
источник
Вот еще одно исправление в одну строку, без замены исходного экземпляра $ .event.props (который может быть, а может и не быть массивом), на всякий случай :-)
источник
Я использовал это после вызова любого события:
Это сработало для меня, у меня нет предупреждений, так как я сделал этот патч для своего кода.
источник
Помимо проблем с конфигурацией, перечисленных в других ответах, эта ошибка может быть вызвана простой ошибкой в вашем собственном коде: забыв '#' из селектора jQuery ID.
У меня был код, похожий на
(пропуская # перед "datenotset")
Так же как (очевидно) не работающий, это вызвало это сообщение об ошибке в Chrome.
источник
Я столкнулся с этой проблемой в моем собственном коде. Оказывается, я перебирал все свойства объекта события как часть инструмента отладки / проверки, который я использовал. В этом конкретном случае я использовал jQuery $ .extend для клонирования объекта для последующей проверки, но я считаю, что любой из стандартных методов итерации в различных наборах инструментов также вызвал бы предупреждение.
Я упоминаю об этом здесь, потому что моя первоначальная мысль о простом поиске в кодовой базе экземпляров layerX или layerY не помогла - на свойство ссылались в общем, а не по имени.
источник