Использование jQuery с другими JavaScript-библиотеками
Библиотека jQuery и практически все ее плагины используют пространство имен jQuery. Как правило и "глобальные" объекты хранятся внитри пространства имен jQuery, поэтому не должно происходить конфликтов jQuery с другим библиотеками (такими как Prototype, MooTools или YUI).
Тем не менее существует одна опасность: по умолчанию jQuery использует "$" в качестве псевдонима для "jQuery"
Переопределение функции $
Однако, существует возможность переопределять использование $ в качестве функции jQuery по умолчанию: это достигается вызовом метода jQuery.noConflict()
, например, если одновременно загружены две библиотеки jQuery и Prototype:
<html> <head> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict(); // Использование jQuery с помощью метода jQuery(...) jQuery(document).ready(function(){ jQuery("div").hide(); }); // Использование Prototype с помощью метода $(...) $('someid').hide(); </script> </head> <body></body> </html>
Кроме этого существует другой вариант. Если вам нужно гарантировать, чтобы jQuery не конфликтовала с другими библиотеками, но вы также хотите использовать короткий псевдоним, вы можете написать следующий код:
<html> <head> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> var $j = jQuery.noConflict(); // Использование jQuery с помощью метода $j(...) $j(document).ready(function(){ $j("div").hide(); }); // Использование Prototype с помощью метода $(...) $('someid').hide(); </script> </head> <body></body> </html>
Вы можете определить альтернативное имя для основного метода jQuery (например, jq, $J — или любое другое, которое для вас приемлемо).
Наконец, если вы не хотите назначать альтернативный псевдоним для jQuery и собираете использовать метод $, то для этого существует другое решение. Оно наиболее часто используется в тех случаях, когда вам нужно использовать стандартный псевдоним $, но вы не хотите создавать проблем при совместном использовании других библиотек.
<html> <head> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict(); // Нужно заключить весь код с использованием jQuery внутри события ready документа jQuery(document).ready(function($){ $("div").hide(); }); // Использование Prototype с помощью метода $(...) $('someid').hide(); </script> </head> <body></body> </html>
Это вероятно идеальное решение для большинства разработчиков, учитывая последующий компактный код благодаря использованию псевдонима $ и безконфликтное сосуществование с другими библиотеками.
Новое в справочниках
- Метод jQuery.ajax() / 20.04.2011
- jQuery-селектор [attribute$="value"] / 04.02.2011
- Метод jQuery.sub() / 31.01.2011
- Популярные плагины jQuery / 20.01.2011
- Метод .animate() в jQuery / 27.12.2010