jQuery - Метод noConflict()

А что если для вашего сайта потребуется какой-нибудь другой фреймворк одновременно с библиотекой jQuery?

jQuery и другие фреймворки JavaScript

Кроме jQuery существует множество других популярных JavaScript фреймворков: Angular, Backbone, Ember, Knockout и т.д.

При этом, как вы уже знаете, jQuery использует знак доллара ($) как псевдоним для jQuery.

А что если другой JavaScript фреймворк также использует знак $ как свой псевдоним?

Если два разных фреймворка используют один и тот же псевдоним, то один из них может перестать работать.

Однако, разработчики библиотеки jQuery об этом подумали и создали метод noConflict().

jQuery метод noConflict()

Метод noConflict() освобождает идентификатор псевдонима $, таким образом другие скрипты получают возможность свободно его использовать.

При этом, вы, конечно, можете для обращения к библиотеке использовать вместо псевдонима ее полное имя, т.е. jQuery:


$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
     jQuery("p").text("jQuery работает!");
  });
});

Также, очень просто создать свой собственный псевдоним. Метод noConflict() возвращает ссылку на jQuery, которую можно сохранить в переменную для дальнейшего использования. Например:


var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery работает!");
  });
});

Если у вас есть блок jQuery кода, в котором используется псевдоним $, и вам не хочется весь его переписывать, то вы можете передать знак $ в качестве параметра в метод ready. Это позволит вам внутри этой функции иметь доступ к jQuery при помощи псевдонима $, вне же этой функции вам все же придется использовать слово "jQuery":


$.noConflict();
jQuery(document).ready(function($){
   $("button").click(function(){
     $("p").text("jQuery работает!");
  });
});