Как решить конфликт версий jquery

170
24 февраля 2018, 20:52

Есть плагин который с помощью shortcode загружается на страницу и он использует свою версию jquery а тема использует свою , в итоге плагин не работает на более новой версии jquery , как можно решить эту проблему не отказываясь при этом от новой версии jquery

сейчас в файле functions.php подключение выглядит так

wp_enqueue_script( 'test-themes-jquery', get_template_directory_uri() . '/js/jquery-3.3.1.min.js', array(), '3.3.1', true );
Answer 1
  1. Подключать последнюю версию вместе с плагином jquery-migrate (это если у вас не совсем древняя версия в шаблоне и она может работать с jQuery 1.12.x)

  2. Использовать jQuery.noConflict(). Это легко сделать если у вас скрипты на новой версии jQuery лежат в отдельном файле (или количество файлов и инлайн-вставок небольшое). Для этого в конце вашего файла c jQuery 3 (или во вставке сразу после загрузки jQuery3) нужно написать jq3 = jQuery.noConflict(); (имя переменной выбираете сами) затем обернуть все скрипты (именно поэтому это способ только для небольшого количества, если у вас вставок как в опенкарте - этот способ не годится) и вставки в (function($) { ... })(jq3));

  3. Правильный путь (но не всегда оптимальный): Воспользуйтесь руководством по обновлению и перепишите все скрипты на последнюю версию. Звучит это, конечно, дико, но если скрипты к теме писал человек с головой (и не под версию <1.7), там потребуется немного шаблонных замен.

READ ALSO
фильтр по нескольким параметрам

фильтр по нескольким параметрам

Как изменить код так что бы он проверял и фильтровал значения не только по полностью совпадающим категориям с маркерами, а добавлял маркерыНа...

144
Сортировка значений в таблице jquery

Сортировка значений в таблице jquery

Как сделать сортировку значений в таблицеЕсть две колонки в таблице в по которым нужно делать сортировку

206