Костыли или как подружить JQuery разных версий

В данном подфоруме будут располагаться все статьи, помогающие освоиться в администрировании форума.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение DeaDRoMeO »

Всем доброго времени суток и по просьбам читателей пишу данную мини-статейку. Речь в ней пойдет вот о чем ...

Всем известный факт - нельзя просто так подключить две разные версии скрипта JQuery, но я могу с этим поспорить ::yaz-yk: В помощь нам придут так называемые "костыли". Как их применять покажу на примере этого скрипта - Плавающая панель phpbb3 . По начальным условиям (просто для примера) у нас в шапку подключен уже JQuery версии 1.7.2, он очень для нас важен, но есть одно большущее НО - с данной версией не работает плавающая панель, а ей нужна версия 1.4.2. Что делать ? Использовать "костыли", а именно

1. Все имена файлов скриптов привести в следующий вид для порядка чтобы видеть версию. Например вместо

Код: Выделить всё

<script src="http://адрес до скрипта/jquery/1.4.2/jquery.min.js"  type="text/javascript"></script>
Переименовать чтобы было так

Код: Выделить всё

<script src="http://адрес до скрипта/jquery.1.4.2.min.js"  type="text/javascript"></script>
2. После строки подключения низшей версии скрипта (в нашем случае 1.4.2) вставляем такие строки

Код: Выделить всё

<script>
var jquery_1_4_2 = jQuery;
</script>
3. Использовать "костыль" следующим образом, для примера плавающей панели, БЫЛО

Код: Выделить всё

<script type="text/javascript">
    $(document).ready(function() {
      $("#sample-bar").jixedbar();
    });
</script>
СТАЛО

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
(function(){

    var $ = jQuery = jquery_1_4_2 ;
    $(document).ready(function() {
	
		$("#sample-bar").jixedbar();
    });})();
	// ]]>
</script>
Тобишь, чтобы обработчик понял, какой код какой версией jQuery обрабатывать мы заключаем этот самый код в такую конструкцию

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
(function(){

    var $ = jQuery = jquery_1_4_2 ;
а тута обрамляемый код
   })();
	// ]]>
</script>
Иными словами мы присваиваем переменной $ срабатывание нужной версии jQuery, а именно 1.4.2.
Хочу отметить то, что костыли применяются только к низшим версиям скрипта jQuery, высшие не трогаются !!!
Таким образом лично у меня уживаются jQuery версий 1.7.2 и 1.5.2. Надеюсь и у вас получится :bra_vo:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#1
Аватара пользователя
Discovery
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 77
Стаж: 9 лет 6 месяцев
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение Discovery »

Подскажите пожалуйста. Что-то не понял.. вроде сначала мысль уловил, а потом вы привели пример и всё окончательно и бесповоротно запуталось и уже не стало быть похожим на начало инструкции. )) Просто по неопытности тяжко...

Итак существует задача и проблема. У меня на форуме сверху установлен слайдер, кусочек кода где у него подключена библиотека выглядит так:

Код: Выделить всё

<script type="text/javascript" src="http://velolida.by/styles/prosilver/slayder/js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="http://velolida.by/styles/prosilver/slayder/js/jquery.nivo.slider.js"></script>
    <script type="text/javascript">
    $(window).load(function() {
        $('#slider').nivoSlider();
    });
    </script>
То есть самая первая строчка из этого кусочка, этот тот самый jquery-1.7.1.min.js
Теперь по ряду причин, мне вздумалось прикрутить ещё одну приблуду к форуму и там тоже используется библиотека и кусочек кода от туда выглядит вот так:

Код: Выделить всё

<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>
    <link rel='stylesheet' type='text/css' href='{ROOT_PATH}list_repeat/css/box-lid.css'>
    <link rel='stylesheet' type='text/css' href='{ROOT_PATH}list_repeat/css/box-lid-nav.css'>
    И так далее....
Если оставлять всё как есть, то после установки всего чего нужно, слайдер перестаёт отображаться, а вторая приблуда в принципе работает.
Если мы идём и у слайдера просто убираем строчку: <script type="text/javascript" src="http://velolida.by/styles/prosilver/sla ... "></script>
Надеясь на то что хватит и одной библиотеки на сайте, то слайдер так не думает и продолжает не отображаться, до тех пор, пока у второй приблуды не уберёшь: <script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>
а у слайдера оставишь. Но тогда слайдер работает, а приблуда нет.. )

Вопрос! можно ли применить ваш выше описанный костыль и если да, то продублируйте пожалуйста мою часть кода от слайдера, но уже с поправками. Так как у него 1.7.1 версия и я так понимаю она ниже чем 1.10.2
Заранее огромное спасибо за помощь. Хочется попробовать, вдруг заработают эти два нужных мне скрипта.
#2
Аватара пользователя
Discovery
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 77
Стаж: 9 лет 6 месяцев
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение Discovery »

Никто не знает? )
#3
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение DeaDRoMeO »

Вечером попробую подсказать ибо у провайдера какие то проблемы, нет у меня пока что нормального интернета
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#4
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение DeaDRoMeO »

Ап, чтобы сегодня точно не забыть после работы
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#5
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение DeaDRoMeO »

ТАк-с, есть интересное наблюдение такая версия джиквери
Discovery писал(а):jquery-1.10.2.min.js
Прекрасно уживается с 1.7.1 в phpbb 3.1, попробуйте подключать 1.7.1 после 1.10.2, как идет в коде 3.1

Второй вариант

Код: Выделить всё

<script type="text/javascript">
    $(window).load(function() {
        $('#slider').nivoSlider();
    });
    </script>
ЗАменить на

Код: Выделить всё

<script type="text/javascript">
(function(){

    var $ = jQuery = jquery_1_7_1 ;
    $(window).load(function() {
        $('#slider').nivoSlider();
    });

})();
    </script>
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#6
Аватара пользователя
Discovery
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 77
Стаж: 9 лет 6 месяцев
Контактная информация:

Костыли или как подружить JQuery разных версий

Сообщение Discovery »

Спасибо. )) Может пригодится информация, но я уже просто другой слайдер подобрал и он теперь со всеми уживается, а все скрипты завёл на один джиквери и всё заработало.
#7
Ответить