jQuery.noConflict()
Этот метод отключает использование $ в качестве переменной jQuery.
jQuery.noConflict( [ removeAll ] )
Появился в версии 1.0.
Аргументы:
- removeAll — A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself).
Многие библиотеки JavaScript используют переменную $ в качестве функции или глобальной переменной, в том числе и jQuery. В jQuery функция $ является коротким псевдонимом функции jQuery, поэтому весь функционал библиотеки доступен и без использования $. Если необходимо использовать другую JavaScript-библиотеку наряду jQuery, мы может отдать контроль над переменной $ другой библиотеке с помощью метода $.noConflict():
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Далее можно использовать $ другой библиотеки </script>
Такой способ особенно эффективен в сочетании с методом .ready()
, благодаря которому мы можем использовать короткий псевдоним $ внутри этого метода:
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // Код jQuery с использованием $ }); // Код другой JavaScript-библиотеки </script>
Если необходимо, можно освободить для использования и переменную jQuery, передав true в качестве аргумента методу noConflict
. Это редко используется, и если такой способ используется (например, если необходимо подключить несколько версий jQuery на одной странице), нужно учитывать, что большинство плагинов предполагает наличие переменной jQuery и могут не работать при её отсутствии.
Примеры использования jQuery.noConflict()
Задача: Использовать переменную $ другой библиотеки.
jQuery.noConflict(); // Используем jQuery jQuery("div p").hide(); // Используем $() другой библиотеки $("content").style.display = 'none';
Задача: Использовать глобальную переменную $ другой библиотекой и локальную переменную библиотекой jQuery.
jQuery.noConflict(); (function($) { $(function() { // код jQuery с использованием локальной переменной $ }); })(jQuery); // код другой JavaScript-библиотеки с использованием глобальной переменной $
Пример: Вы можете вызвать метод ready
сразу после jQuery.noConflict()
, чтобы получить более компактный код.
jQuery.noConflict()(function(){ // код jQuery }); // код другой библиотеки с использованием $
Задача: Создать короткий псевдоним вместо переменной $.
var j = jQuery.noConflict(); // Используем новую переменную jQuery j("div p").hide(); // Используем функцию $() другой библиотеки $("content").style.display = 'none';
Задача: Переместить переменную jQuery в новое пространство имён другого объекта.
var dom = {}; dom.query = jQuery.noConflict(true);
Применение:
// Используем свойство объекта в качестве переменной jQuery dom.query("div p").hide(); // Используем функцию $() другой библиотеки $("content").style.display = 'none'; // Используем стандартную переменную jQuery jQuery("div > p").hide();
Новое в справочниках
- Метод 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
Комментарии
Спасибо, помогли :)
мне помогло, спасибо. вот что я сделал
<script src="/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery.spasticNav.js"></script>
<script type="text/javascript">
$.noConflict();
<script src="/js/jquery-1.4.3.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.6.custom.min.js" type="text/javascript"></script>
</script>
Лучше все таки писать -
jQuery.noConflict();
- именноjQuery
, а не$
. И зачем подключать одновременно две разные версии библиотеки jQuery?спс=))) переделал, работает отлично. ступил насчет 2ой библиотеки=)))
<script src="/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery.spasticNav.js"></script>
<script type="text/javascript">
jQuery.noConflict();
<script src="/assets/templates/taxi/js/jquery-1.4.3.min.js" type="text/javascript"></script>
</script>
А почему вложенный скрипт в конце?
Есть вот такой код
<script type="text/javascript">
$.noConflict();
$(function () {
$('#datetimepicker1').datetimepicker({language: 'ru',minuteStepping:10,defaultDate:"09.01.2015",daysOfWeekDisabled:[0,6]});
$('#datetimepicker2').datetimepicker({language: 'ru'});
});
</script>
Он использует бублиотеку jquery-1.11.1.min.js
Так же на этой странице используется jquery-1.8.3.min.js который не дает мне использовать мой код который я написал выше.
Как исправить это дело?
Все это дело делается в adobe museЯ хочу туда вставить datapiker http://itchief.ru/lessons/bootstrap-3/113-bootstrap-3-datetimepicker