Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

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

Есть плагин который с помощью 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 );


Ответ

Подключать последнюю версию вместе с плагином jquery-migrate (это если у вас не совсем древняя версия в шаблоне и она может работать с jQuery 1.12.x) Использовать jQuery.noConflict(). Это легко сделать если у вас скрипты на новой версии jQuery лежат в отдельном файле (или количество файлов и инлайн-вставок небольшое). Для этого в конце вашего файла c jQuery 3 (или во вставке сразу после загрузки jQuery3) нужно написать jq3 = jQuery.noConflict(); (имя переменной выбираете сами) затем обернуть все скрипты (именно поэтому это способ только для небольшого количества, если у вас вставок как в опенкарте - этот способ не годится) и вставки в (function($) { ... })(jq3)); Правильный путь (но не всегда оптимальный): Воспользуйтесь руководством по обновлению и перепишите все скрипты на последнюю версию. Звучит это, конечно, дико, но если скрипты к теме писал человек с головой (и не под версию <1.7), там потребуется немного шаблонных замен.

Комментариев нет:

Отправить комментарий