info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ]  Просмотры: 2695

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 5 дней
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Скрипты jquery. Конфликты и пути решения

Частенько, при установке достаточно большого количества модификаций, происходит "конфликт скриптов" jquery, который приводит к нарушениям работы модов: зависанию, частичной неработоспособности, до полного "выключения" скрипта и прекращения работы модификации. Такое происходит либо при подключении одновременно двух скриптов (тогда просто можно удалить один, более низкой версии), либо, когда эти скрипты частично выполняют одну и ту же функцию и начинают "конфликтовать" между собой, но ни один из них убирать нельзя, так как это приводит к неработоспособности мода. В этом случае Вам и могут пригодиться данные "примочки"...

Объединение двух скриптов.

Строка нижеприведенного кода объединяет две библиотеки в одно целое. Сначала происходит поиск в библиотеке 1.11.1 и если не найдена нужная функция, то в библиотеке 1.7.1.

Вместо вашей библиотеки jquery.min.js подключите последнюю версию библиотеки 1.11.1

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

<script src="путь к скрипту/js/jquery.1.11.1.min.js" type="text/javascript"></script>


Ниже подключите библиотеку 1.7.1

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

<script src="путь к скрипту/js/jquery.1.7.1.min.js" type="text/javascript"></script>
<script>var jquery_1_7_1 = jQuery;</script>


Последняя строка вышеприведенного кода объединяет две библиотеки в одно целое. Сначала происходит поиск в библиотеке 1.11.1 и если не найдена нужная функция, то в библиотеке 1.7.1.

То есть у вас должно получиться вот так:

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

<script src="путь к скрипту/js/jquery.1.11.1.min.js" type="text/javascript"></script>
<script src="путь к скрипту/js/jquery.1.7.1.min.js" type="text/javascript"></script>
<script>var jquery_1_7_1 = jQuery;</script>


(более новая версия библиотеки прописывается первой, коды скриптов прописываются в шапке сайта, согласно коду, скрипт ложится в папку js и данная папка закачивается в корень форума).

Скачать набор из нескольких широко употребляемых скриптов можно внизу странички.


Применение "костылей". (информация от DeaDRoMeo)

Всем известный факт - нельзя просто так подключить две разные версии скрипта JQuery, но я могу с этим поспорить. В помощь нам придут так называемые "костыли". Как их применять покажу на примере этого скрипта - http://hello-vitebsk.ru/viewtopic.php?f=144&t=1162. По начальным условиям (просто для примера) у нас в шапку подключен уже 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, высшие не трогаются !!!


Всё это довольно просто, хотя, может быть, и выглядит сложно. Успехов вам в работе.

Скачать из файлового архива сайта

(в набор входят версии 1.3.2, 1.4.2, 1.7.1, 1.7.2, 1.11.1 )



трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
jquery
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 27 апр 2024, 14:05

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид