Зачем мне нужен jquery-migrate-1.4.1.js после успешного обновления jQuery?
Я закончил обновление jQuery с 1.3.1 до 1.12.4. Все работает правильно, и я готов удалить jquery-migrate-1.4.1.js, потому что я использовал его только для целей отладки во время процесса обновления.
Когда я удаляю jquery-migrate-1.4.1.js из <head>
раздел моего сайта, страница больше не работает должным образом. Что-то ломается в JavaScript/jQuery. Я читал https://blog.jquery.com/2016/05/19/jquery-migrate-1-4-1-released-and-the-path-to-jquery-3-0/ пытаясь найти информацию о это, и это то, что я нашел:
Удалите плагин Migrate 1.x и убедитесь, что страница по-прежнему работает без загрузки.
Зачем мне нужен jquery-migrate-1.4.1.js после успешного обновления jQuery? Я думал, что это был только "закулисный" сценарий исключительно для целей отладки, а не для поддержания какой-либо функциональности jQuery /JavaScript.
1 ответ
Недоразумение, которое сбивает вас с толку в данный момент, заключается в том, что цель jquery-migrate-1.4.1.js
состоит в том, чтобы установить несколько обратных решений, чтобы ранний код jQuery работал в более свежем jQuery, а также жаловался в console.log, чтобы вы могли это исправить. Это на самом деле не меняет ваш код. Несколько указателей, которые помогут вам перейти на основе ваших комментариев:
Я вижу, например: "JQMIGRATE: jQuery.browser устарела". Это странно, потому что источником этой ошибки является jquery-migrate-1.4.1.js:45, а это файл jquery-migrate-1.4.1.js, а не то, что я использую jQuery.browser в своем коде.
Строка, выполняющая регистрацию, находится в jquery-migrate-1.4.1.js
поэтому ошибка, по-видимому, указывает на этот файл, однако строка, вызывающая jQuery.browser
может быть в плагине, который вы загружаете (это было распространено в первые дни jQuery, когда люди писали хаки для браузера). Вы можете попробовать поискать .browser
во всех ваших ссылках .js
файлы (даже уменьшенные), чтобы хотя бы изолировать плагин, а затем попытаться найти альтернативы.
Я вижу такие вещи, как: "jquery-migrate-1.4.1.js:45 JQMIGRATE: jQuery.fn.size() устарела; используйте свойство.length". Но я не могу найти jQuery.fn.size () в моем исходном коде.
Подход jQuery.fn.size()
может появиться в вашем коде так:
$('li.items').size()
jQuery.fn
это просто имя объекта функций элемента jQuery. Поскольку ваш объект jQuery основан на селекторе jQuery, который вы написали, его может быть трудно найти, вместо этого ищите что-то вроде .size()
и если он отображается справа от селектора jQuery, попробуйте заменить его просто .length
(без скобок, как length
это просто собственность).
Если у вас есть другие вопросы, вам, вероятно, лучше опубликовать их как новые вопросы, чтобы они могли получить более прямые и в целом полезные ответы.