Использование 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
