Метод jQuery noConflict()

Как использовать jQuery и другие фреймворки на странице одновременно?

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

Как вы уже знаете, jQuery использует символ $ в качестве сокращения для jQuery.

Что делать, если другие JavaScript-фреймворки также используют символ $ в качестве сокращения?

Другие JavaScript-фреймворки включают: MooTools, Backbone, Sammy, Cappuccino, Knockout, JavaScript MVC, Google Web Toolkit, Google Closure, Ember, Batman и Ext JS.

Некоторые другие фреймворки JavaScript также используют символ $ в качестве сокращения (например, jQuery), и если вы используете два разных фреймворка, которые используют одинаковые сокращения, это может привести к остановке работы скрипта.

Команда 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":

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

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

jQuery Основной справочник

Если вам нужно полное описание методов ядра jQuery, пожалуйста, посетите наш jQuery Основной справочник.