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.

Некоторые из этих фреймворков также используют символ $ как сокращение (так же, как 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 всё ещё работает!"); }); });

Попробуйте сами »
Другие расширения