Обновление кода jQuery в неподдерживаемом плагине или теме WordPress
Прежде чем ты начнешь
jQuery.fn.live() устарел
jQuery.browser устарел
jQuery.fn.size () устарел
jQuery.fn.load () устарел
Это очень обобщенное введение, оно ни в коем случае не является исчерпывающим или полным. Вам предлагается продолжить изучение проблем, с которыми вы можете столкнуться.
С выпуском WordPress 5.5 инструмент, известный как jQuery Migrate, больше не был включен по умолчанию (это часть пути обновления до jQuery 3 в ядре WordPress).
К сожалению, на некоторых пользователей это негативно повлияло, это было своего рода ожидаемым, и плагин для помощи этим пользователям был выпущен до выпуска под названием Enable jQuery Migrate Helper. Он функционирует как временное решение до следующего выпуска WordPress, но к тому времени код должен быть обновлен.
Тем не менее, существуют различные темы и плагины, которые больше не поддерживаются, и пользователи немного не понимают, что они могут делать. В идеале, если это вы, поиск поддерживаемой альтернативы будет лучшим решением. Что не всегда является самым своевременным решением.
Если вы один из тех, кому не повезло, вы используете неподдерживаемый плагин или тему и у вас возникли проблемы, связанные с тем, что jQuery Migrate больше не включен на вашем сайте, ниже приведен список наиболее распространенных устаревших функций и способы их исправления вручную. .
Обратите внимание, что это потребует от вас изменения вашего плагина или темы, и эти изменения будут перезаписаны, если тема или плагин обновятся.
Если вы не хотите, чтобы это произошло, рассмотрите возможность разветвления плагина или создания дочерней темы, но это может быть временное решение.
Это также требует, чтобы вы внесли изменения в код, если вам это неудобно, вы, вероятно, найдете других разработчиков, которые возьмут это на себя как внештатную задачу, или, если у вас есть агентство или разработчик, которых вы часто используете, посоветуйтесь с ними.
Прежде чем ты начнешь
Вот несколько ключевых фраз, которые будут использоваться и которые важно знать, чтобы вы могли быстро определить, что нужно изменить.
- [селектор] – используется для ссылки на определенную разметку HTML, с которой будет работать ваш код JavaScript. Часто в таком формате:
- [функция] – слово, которое сообщает cvode, что делать в любой момент времени, это то, что на самом деле выполняет код в вашей разметке. Часто в таком формате:
$( 'body' ).[function]()
- [событие] – Что-то, что заставляет код работать. Часто в этом формате в более современном коде:
$( 'body' ).on( [event], function() {
- $ или jQuery
$
сокращение, поскольку оно более широко используется, но могут быть и другие форматы, поэтому всегда копируйте начало кода.
Вы заметите, что [selector]
вокруг него заключены одинарные или двойные кавычки, они должны быть там, чтобы JavaScript знал, что он смотрит на текст, а не на функцию (вот почему в
приведенном выше тексте нет кавычек) .
Часто вы можете просто найти в своем файле имя функции, как указано ниже, чтобы найти, где вам нужно внести изменения в свой код.
jQuery.fn.live() устарел
документация jQuery об .live()
обработчике событий
Пример: $( 'button' ).live( 'click', function() {
Современный пример: $( 'body' ).
Объяснение: Вышеупомянутое будет запускаться всякий раз, когда button
на вашем сайте запускается [event]
of click
(нажата кнопка), а затем запускается серия кода.
Примеры полей:
[selector]
–'button'
[function]
–.live
[event]
–'click'
Наиболее частая из возникающих проблем – это использование .live()
функции, которую использовал jQuery. Для ясности, это было устаревшим в 2011 году, но это также одна из самых простых проблем для решения.
Если вы посмотрите на современный пример выше, вы увидите, что [selector]
он был заменен на более широкий, это сделано потому, что общий пример не может знать структуру веб-сайта yoru, и это всегда будет работать.
[function]
его заменили на современный аналог, но [event]
он остался прежним.Наконец, обратите внимание на то, что оригинал
[selector]
стал частью параметров, используемых модерном [function]
, а остальная часть строки осталась прежней.jQuery.browser устарел
Документация jQuery о .browser()
функции
Альтернативы этой функции нет. Он использовался для определения того, какой браузер использовал посетитель, но оказался ненадежным и был удален по этой причине.
Если вам нужно определить, какой браузер использует посетитель для применения специальных стилей или аналогичных (его обычное использование), вам следует подумать, чтобы разработчик добавил вместо этого функцию обнаружения.
jQuery.fn.size () устарел
Документация jQuery о .size()
функции
Пример:
Современный пример: $( 'button' ).length
Пояснение: Будет подсчитано, сколько элементов [selector]
(в данном случае кнопок) найдено на странице. Обратите внимание, что современный пример не заканчивается скобками, это правильно, в конце не должно быть скобок.
Примеры полей:
[selector]
–'button'
[function]
. size
Такой способ проверки размера часто используется, чтобы увидеть, существуют ли на странице один или несколько HTML-элементов, прежде чем пытаться манипулировать ими с помощью JavaScript, или чтобы проверить, сколько элементов существует в коллекции (массиве) перед выполнением цикла.. Она должна быть простым вопросом замены .size()
с .length
во всех этих случаях.
jQuery.fn.load () устарел
документация jQuery о
мероприятии
Эта функция имеет три использования, и только два из них являются устаревшими (если вы получили предупреждение, был обнаружен один из двух методов, указанных ниже, поэтому вам следует найти их и исправить).
Пример: $( 'body' ).load()
Современный пример: $( 'body' ). trigger( 'load' )
Объяснение: Это укажет браузеру запустить любой код, установленный для запуска, после завершения загрузки страницы, даже если она уже завершила загрузку ранее.
Пример: $( 'body' ).load( function() {
Дополнительный пример: $( 'img' ).load( function() {
Современный пример: $( 'body' ).on( 'load', function() {
Дополнительный современный пример: $( 'body' ).on( 'load', 'img', function() {
Объяснение: В приведенном выше примере будет запущен некоторый код, когда выбранный [selector]
элемент завершит загрузку.
Примеры полей:
–window
,'body'
или'img'
[function]
–. load
[event]
–'load'
Если body
или window
используется в качестве [selector]
, то функции предназначены для запуска после завершения загрузки страницы.
Дополнительный пример и современный пример будут использоваться для запуска всякий раз, когда в этом примере изображение завершает загрузку на страницу.
Это были наиболее частые проблемы, которые до сих пор возникали у пользователей.
У вас есть другие связанные проблемы или, может быть, у вас есть советы о том, как что-то еще лучше объяснить, пожалуйста, дайте мне знать!
Если вам неудобно вносить такие изменения в неподдерживаемый плагин или тему, доступна временная служба для переноса кода jQuery.
Источник записи: https://clorith. net
jQuery | IT Blog. Code Inside
Показываем пользователю флаг его страны при посещении сайта
02.02.2017 11:00
Рассмотрим небольшую практическую задачу: как показать пользователю флаг его страны, когда он заходит на ваш сайт?
Для решения этой задачи понадобятся два сервиса: Flag Sprites и freegeoip.net, рассмотренный в предыдущей статье.
С помощью сервиса Flag Sprites получаем архив, содержащий изображение со всеми флагами мира, и CSS-файл, определяющий координаты каждого флага. В примере рассматриваются большие флаги 32×32.
Распаковываем архив в папку проекта, например flags и подключаем полученный CSS к html странице.
Читать далее…
Определение страны посетителя сайта по его IP
29.01.2017 19:57
Не секрет, что диапазоны IP адресов распределены между странами мира, то есть зная IP можно достаточно точно определить, в какой стране находится пользователь. Иногда даже можно определить его город и координаты (но вот на точность этих данных полагаться уже не стоит).
Существует множество способов определить страну по IP. Это либо базы адресов, развертываемые прямо на сервере, либо онлайн-сервисы, возвращающие информацию об адресе в структурированном формате. Большинство этих сервисов, конечно, имеют ограничения, и для использования в крупных проектах требуют покупки лицензии или подписки, но попробовать их можно и бесплатно.
Читать далее…
Виджет выбора кода страны при вводе телефона на jQuery
03.05.2015 16:00
В формах регистрации, где пользователю необходимо указывать страну и номер телефона, в целях унификации стоит код страны подбирать автоматически в зависимости от того, какую страну указал пользователь. Для этого предназначен следующий виджет для поля ввода телефонного номера с красивым выбором кода страны.
Виджет состоит из javascript файла с самими функциями (про особенности в разработке можно прочесть у автора), json файла со списком стран и кодов и спрайта с флагами.
Читать далее…
jQuery 0
Зачем нужен var в Javascript
04.10.2014 14:47
JavaScript — достаточно гибкий язык, в котором многие конструкции, которые, будучи написанными на других языках, выдавали бы ошибку, отлично работают. К примеру — объявление переменных. Часто возникает вопрос «Зачем в JavaScript для переменных нужен var, если код и без него отлично работает во всех браузерах?». На самом деле ответ заключается в предназначении этого самого var. Ключевое слово var необходимо, чтобы объявить переменную в текущей области видимости, то есть чтобы ограничить видимость переменной.
Читать далее…
jQuery 1
Кнопка-панель «Наверх» как на Вконтакте для WordPress и других сайтов
18.07.2014 23:03
Для длинных страниц с большим объемом информации давно уже стало стандартом наличие кнопки «Наверх», возвращающей пользователя к самому началу страницы, где обычно находятся все кнопки навигации и меню. Сделать такую кнопку можно по-разному, например ссылкой на элемент вверху страницы. У сервиса Вконтакте с его бесконечными подгружаемыми налету страницами возврат «Наверх» представлен панелью, причем если пользователь желает вернуться к тому месту, где он закончил читать, повторное нажатие на панель перенесет его вниз к точке остановки.
Рассмотрим, как реализовать подобную систему для любого сайта практически на любом движке, поддерживающем шаблоны, а также для обычных статических html-сайтов.
В качестве примера будет рассмотрен WordPress.
Читать далее…
Динамическое выравнивание контейнера с float-left блоками по центру с помощью JS+CSS
30.10.2013 10:11
В предыдущей статье мы рассмотрели, как сделать дизайн страницы WordPress в форме «карточек» с помощью JQuery Masonry. Если у вас блоки-карточки одинаковой ширины, то layout визуально будет размещаться в виде колонок.
При этом, ввиду особенностей атрибута стиля float:left, все колонки будут прижаты к левому краю окна, а контейнер будет иметь ширину 100%.
Рассмотрим, как выровнять набор колонок по центру не зависимо от ширины экрана. Предусмотрим также динамическое перестроение при изменении размера окна.
Читать далее…
Динамический layout в стиле «карточек» Google+ с помощью JQuery Masonry
22.10.2013 15:08
Masonry — это JQuery-плагин позволяющий быстро и просто организовать динамический layout блоков разного размера практически без потери места, а если подобрать соответствующие размеры блокам — то без пустых мест вовсе.
Под динамическим layout`ом имеется ввиду, что блоки будут располагаться в контейнере в зависимости от его размеров, максимально рационально заполняя его пространство, тем самым экономя место на странице.
Читать далее…
Jquery-плагин DataTables для лёгкого создания сортируемых таблиц
12.03.2013 12:12
DataTables -это плагин для Javascript-библиотеки JQuery. Это гибкий инструмент, добавляющий расширенные возможности управления таблицами в html. Основные возможности плагина:
- постраничная разбивка с задаваемым количеством записей
- фильтрация «на лету»
- сортировка по нескольким столбцам с определением типа данных
- автоматическая обработка ширины столбцов
- отображение данных практически из любого источника данных (DOM, JavaScript массива, Ajax файла и обработки на стороне сервера (PHP, C #, Perl, Ruby, AIR, Gears и т.д.))
- локализируемость
- поддержка JQuery UI ThemeRoller
- дополнительные модули, Editor, TableTools, FixedColumns и т.д.
Читать далее…
Написание кода для проектов jQuery Foundation
Как и во многих проектах с открытым исходным кодом, большинство участников jQuery являются добровольцами; их способность вносить приливы и отливы в соответствии с требованиями их профессиональной и личной жизни. В результате проекты jQuery всегда ищут талантливых людей, которые мотивированы внести свой вклад.
Новые участники иногда совершают ошибку, начиная с запроса на вытягивание с кодом, который реализует какую-то функцию, которую они хотят включить. В большинстве случаев существует процесс для функций, который начинается с обсуждения и проектирования перед кодированием, поэтому шансы на то, что внезапный вклад будет принят, невелики. Из-за этого у автора может возникнуть ощущение, что его усилия не ценятся. Мы не хотим оставить такое впечатление!
Выполнив следующие шаги, вы повысите шансы на то, что ваш вклад будет принят.
Установите потребность в исправлении или функции. У каждого проекта есть собственный трекер ошибок/проблем, где команда хранит свои списки того, что необходимо сделать. Если уже есть открытая проблема, опубликуйте ее, добровольно выполнив кодирование. Если проблемы нет, создайте ее. Дополнительные сведения см. в разделе Как сообщать об ошибках.
Обсудите билет с командой. Члены команды могут посоветоваться, как лучше решить проблему. Как только вы договоритесь об общем плане атаки, попросите члена команды назначить вам билет. Это обсуждение может происходить в соответствующем трекере или в IRC.
Следуйте руководству по стилю. Руководства по стилю jQuery описывают стиль, который мы используем для написания всего кода проекта jQuery.
Всегда добавляйте модульные тесты. Редко новый или измененный код не нуждается хотя бы в одном дополнительном модульном тесте. Если код исправляет ошибку, должен быть модульный тест, чтобы убедиться, что проблема не повторяется и что код действительно устраняет проблему! Если код реализует новую функцию, часто требуется несколько модульных тестов, которые проверяют все пути кода.
Подпишите лицензионное соглашение участника (CLA). Все участники jQuery Foundation должны подписать CLA, чтобы Фонд имел четкое юридическое право на использование кода, а пользователи jQuery и проектов имели четкое представление о лицензировании. Если вы являетесь сотрудником компании, вы должны убедиться, что компания разрешает участие в проектах с открытым исходным кодом.
Создайте запрос на вытягивание. Многие люди совершают ошибку, работая над основной веткой. Гораздо чище создать отдельную ветку для каждой отдельной функции. Git — это то, чему вы можете учиться всю свою жизнь, но это руководство даст вам ускоренный курс по основам.
Отвечать на код-ревью. Очень немногие пулл-реквесты обрабатываются без обсуждения. Иногда член команды может запросить объяснение кода, что может привести к дополнительным запросам, например добавлению комментариев, поясняющих код. Или обзор может выявить дальнейшие оптимизации, которые можно выполнить. Вы можете отправить новые коммиты в существующую ветку, и они автоматически обновят запрос на извлечение.
Грейтесь на славу! Когда ваш запрос на включение будет принят, укажите на него своим друзьям и похвастайтесь. Если они тоже хорошо разбираются в коде, попросите их внести свой вклад!
Примеры кода jQuery
Бесплатные примеры кода jQuery от codepen.io и плагины от github.io: кнопки, эффекты наведения, загрузчики, модальные окна, текстовые эффекты, меню и другое.
Совет: Используйте Ctrl+F
для поиска.