• Инструменты для разработчика

    • Самые удобные инструменты для разработчика, которые облегчат жизнь любого как начинающего так и продвинутого разработчика. Украшатели, уменьшители, конвертеры кодов. Доменные инструменты. Всё в одном комплекте.
  • Использование BB кодов. Тут указаны существующие BB коды на форуме.

jQuery №2 Урок l Как избежать конфликтов с другими библиотеками

  • Автор темы Jackwar
  • Дата создания
  • Ответов 0
  • Просмотров 886

Jackwar

Заблокирован
Регистрация
22.01.2016
Сообщения
36
Репутация
5
Баллы
0
Награды
0
Лучшие ответы
0
Библиотека jQuery и фактически все ее плагины содержатся в пределах пространства имен jQuery. Как правило, глобальные объекты хранятся в пространстве имен jQuery также, таким образом, невозможно получить конфликт между jQuery и любой другой библиотекой (как prototype.js, MooTools или YUI).

Однако есть одна оговорка: по умолчанию jQuery использует $ как ярлык для jQuery. Таким образом, если Вы пользуетесь другой библиотекой JavaScript, которая использует переменную $, можно столкнуться с конфликтами с jQuery. Чтобы избежать этих конфликтов, Вы должны поместить jQuery в режим без конфликтов сразу после того, как она загружается на страницу и прежде, чем Вы попытаетесь использовать jQuery в своей странице.

Помещение jQuery В Безконфликтный Режим

Когда Вы помещаете jQuery в режим без конфликтОВ, у Вас есть опция присвоения нового имени переменной, чтобы заменить $ псевдонимом.


В коде выше, $ вернется назад к своему значению в исходной библиотеке. Вы все еще будете в состоянии использовать полное имя функции jQuery, так же как и новый псевдоним $j в остальной части Вашего приложения. Новый псевдоним можно назвать как угодно, на Ваше усмотрение: jq, $J, awesomeQuery и т.д..

Наконец, если Вы не хотите определять другой вариант к полному имени функции jQuery (Вам действительно нравится использовать $ и не беспокоиться об использовании другой библиотеки с методом $), то есть и другой подход, который Вы могли бы попробовать: просто добавьте $ как параметр, который передается в Вашу функцию jQuery( document ).ready(). Это наиболее подходящий вариант в случае, когда Вы по-прежнему хотите извлечь преимущества их краткого кода jQuery, но не хотите вызвать конфликты с другими библиотеками.


<!-- Другой способ перевести jQuery в
режим no-conflict. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>

jQuery.noConflict();

jQuery( document ).ready(function( $ ) {
// Вы можете использовать $ в локальном
// контексте как псевдоним для jQuery.
$( "div" ).hide();
});

// Переменная $, доступная в глобальном
// контексте, имеет значение prototype.js.
window.onload = function(){
var mainDiv = $( "main" );
}



Это, вероятно, идеальное решение для большей части Вашего кода, если считать, что будет меньше кода, который необходимо изменить, чтобы достигнуть полной совместимости.

Включение jQuery Перед Другими Библиотеками

Фрагменты кода выше полагаются на jQuery, загружаемую после того, как prototype.js загружена. Если Вы включаете jQuery перед другими библиотеками, можно использовать jQuery когда Вы делаете некоторую работу с jQuery, но $ будет определять значение в другой библиотеке. Нет никакой потребности освобождать псевдоним $, вызывая jQuery.noConflict().




<!-- Загрузка jQuery перед другими библиотеками. -->
<script src="jquery.js"></script>
<script src="prototype.js"></script>
<script>

// Используйте полное имя функции jQuery для ссылки на jQuery.
jQuery( document ).ready(function() {
jQuery( "div" ).hide();
});

// Используйте переменную $ как определенную в prototype.js
window.onload = function() {
var mainDiv = $( "main" );
};

Информация Спасибо за внимание,оставьте + к репутации.



---------- Сообщение добавлено в 06:33 ---------- Предыдущее сообщение было в 06:32 ----------

Увидемся на #3 уроке,смотрите не прогуляйте урок :D
 
Сверху Снизу