Функция $.noConflict()

Определение и применение

Функция $.noConflict() освобождает глобальное имя $, когда оно нужно другой библиотеке. При этом jQuery можно сохранить в своей переменной и продолжить работу с теми же элементами и методами.

Синтаксис

JavaScript
const jq = jQuery.noConflict();
// Освободить также глобальное имя jQuery:
const isolated = jQuery.noConflict(true);

Параметры и возвращаемое значение

Необязательный логический аргумент true восстанавливает также прежнее значение глобального jQuery. Без него освобождается только $. Результат — ссылка на текущую функцию jQuery, которую нужно сохранить до дальнейших вызовов.

Прежние значения глобальных имён запоминаются при загрузке библиотеки. Если раньше имени не было, после освобождения оно может иметь значение undefined. Функция не выгружает библиотеку, не удаляет DOM-данные и не снимает обработчики.

Особенности и совместимость

Плагины могут ожидать глобальное имя jQuery, поэтому вариант с true требует проверки их работы. Одновременное подключение нескольких версий усложняет совместимость; noConflict не объединяет их данные и плагины.

В обработчик jq(function ($) { ... }) jQuery передаёт саму себя: так короткое имя можно использовать локально. В примере освобождаются оба глобальных имени, а сохранённая переменная продолжает работать.

Документация

Пример использования

Собственное имя библиотеки: попробуйте сами

Сохранённая переменная изменяет текст даже после освобождения глобальных имён. Используется jQuery 4.0.0.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
const jq = jQuery.noConflict(true)
jq('#result').text('Версия: ' + jq.fn.jquery + ' | глобальная jQuery: ' + typeof window.jQuery)