Задавайте вопросы

Задавайте вопросы и получайте ответы от нашего сообщества

Отвечайте

Отвечайте на вопросы и станьте экспертом по своей теме

Свяжитесь с администрацией

Наши специалисты готовы ответить на ваши вопросы

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

  • Автор темы Jackwar
  • Дата начала
  • Ответы 0
  • Просмотры 944
  • Watchers 0

Информация о теме

О теме Здравствуйте, вы читаете тему №2 Урок l Как избежать конфликтов с другими библиотеками созданную в в разделе JavaScript пользователем Jackwar. Эта тема была просмотрена 944 раз(а), получила 0 комментариев и 0 очки реакции...
Название категории JavaScript
Название темы №2 Урок l Как избежать конфликтов с другими библиотеками
Автор темы Jackwar
Дата начала
Ответы
Просмотры
Количество реакций
Последнее сообщение Jackwar

Jackwar

Заблокирован
Регистрация
22.01.2016
Сообщения
36
Реакции
2
Баллы
0
Лучшие ответы
0
  • Автор темы
  • Заблокирован
  • #1
Библиотека 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
 
Верх Низ