jQuery ядро - метод noConflict()

Пример

Используйте метод noConflict() для назначения нового имени переменной jQuery:

var jq=$.noConflict();

Попробуйте сами

Определение и использование

Метод noConflict() передаёт контроль переменной $ в jQuery.

Этот метод освободит переменную $ от контроля jQuery.

Этот метод также можно использовать для назначения нового пользовательского имени переменной jQuery.

Совет:Полезно использовать этот метод, когда другая библиотека JavaScript использует $ для своих функций.

Синтаксис

jQuery.noConflict(removeAll)
Параметры Описание
removeAll Булево значение. Указывает, разрешать или нет полное восстановление переменной jQuery.

Описание

Многие библиотеки JavaScript используют $ в качестве имени функции или переменной, jQuery не исключение. В jQuery $ является просто.alias для jQuery, поэтому все функциональности могут быть保障, даже если не использовать $. Если нам нужно использовать другую библиотеку JavaScript, кроме jQuery, мы можем вернуть контроль через вызов $.noConflict():

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Код, использующий $ другой библиотеки
</script>

Этот метод можно комбинировать с .ready() для присвоения别名 jQuery объектам,这项技术非常有效:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Код, использующий $ jQuery
  });
  // Код, использующий $ другой библиотеки
</script>

Кроме того, передавая параметр true этому методу, мы можем передать контроль над $ и jQuery обратно в исходную библиотеку. Прежде чем использовать, подумайте хорошо!

Это более крайний вариант по сравнению с простым noConflict, так как это полностью перерedefinirovaet jQuery. Это обычно используется в крайних случаях, например, когда вы хотите嵌入 jQuery в высококонфликтную среду. Обратите внимание: после вызова этого метода возможно отключение плагинов.

Пример

Пример 1

Карта $ на объекты оригинального объекта:

jQuery.noConflict();
jQuery("div p").hide(); // Использование jQuery
$("content").style.display = "none"; // Использование $ другой библиотеки

Пример 2

Восстановите использование别名 $ и создайте и выполните функцию, в которой $ по-прежнему используется в качестве別ого jQuery. В этой функции оригинальный объект $ неактивен. Эта функция очень эффективна для большинства плагинов, не зависящих от других библиотек:

jQuery.noConflict();
(function($) { 
  $(function() {
    // Код использования $ в качестве別ого jQuery
  });
})(jQuery);
... // Код других библиотек, использующих $ в качестве別ого

Пример 3

Можно комбинировать jQuery.noConflict() с сокращенной ready, чтобы сделать код более компактным:

jQuery.noConflict()(function() {
    // Код использования jQuery
});
... // Код других библиотек, использующих $ в качестве別ого

Пример 4

Создайте новый别名 для использования объекта jQuery в следующих библиотеках:

var j = jQuery.noConflict();
j("div p").hide(); // Код на основе jQuery
$("content").style.display = "none"; // Код $() на основе другой библиотеки

Пример 5

Полностью переместите jQuery в новый именованный пространств:

var dom = {};
dom.query = jQuery.noConflict(true);

Результат:

dom.query("div p").hide(); // Новый код jQuery
$("content").style.display = "none"; // Код другой библиотеки $()
jQuery("div > p").hide(); // Другой вариант кода jQuery