Создать ответ 
Конфликт скриптов при добавлении jQuery
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Конфликт скриптов при добавлении jQuery
Иногда, при добавлении на уже имеющийся сайт каких-либо новых скриптов на jQuery, может возникнуть конфликт с уже имеющимися на сайте скриптами, в результате чего некоторые скрипты могут работать не верно, либо не работать вообще.

Случается это из-за того, что некоторые JavaScript библиотеки, так же как и библиотека jQuery используют знак $ как имя переменной или функции. Однако, в случае jQuery, $ является синонимом (алиасом) идентификатора jQuery. Поэтому, при освобождении имени $ с помощью jQuery.noConflict() мы не теряем функциональности библиотеки jQuery, поскольку можем использовать вместо него синоним jQuery.

Освобождать переменную $, чтобы избежать конфликтов имен следует следующим образом:
Код:
jQuery.noConflict();
(function($){
    // здесь $ будет действовать как алиас jQuery
})(jQuery);
// здесь $ будет доступен для других библиотек

Именно так мы и сделали на нашем форуме, когда добавляли кнопки прокрутки странички вверх и вниз.
27.03.2013 19:53:42
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #2
RE: Конфликт скриптов при добавлении jQuery
Куда этот код надо вставить? Подскажите пожалуйста.
22.04.2013 23:36:46
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #3
RE: Конфликт скриптов при добавлении jQuery
Этот код необходимо поместить внутрь тегов <script type="text/javascript"></script>. А уже внутри данного кода должен разместится наш jQuery код:

Код:
<script type="text/javascript">
jQuery.noConflict();
(function($){

Тут располагается наш jQuery код

})(jQuery);
</script>
23.04.2013 19:28:09
Найти все сообщения Цитировать это сообщение
Sergey1917 Не на форуме
Старшина
*

Сообщений: 51
У нас с: Apr 2013
Сообщение: #4
RE: Конфликт скриптов при добавлении jQuery
Вставил этот код. Ничего не изменилось. Спойлеры нормально работают, но с постоянной надписью "закрыть", независимо от положения закрытого или открытого блока.
23.04.2013 23:11:42
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #5
RE: Конфликт скриптов при добавлении jQuery
Перенес комментарий из темы Плавная смена изображений на jQuery

(15.09.2013 14:09:06)Дмитрий писал(а):К сожалению ситуация не изменилась. Может я что то делаю не так?
Вот кусок кода, который отвечает за анимацию картинок. Правильно ли я вписал туда функцию jQuery.noConflict(); ?

<script type="text/javascript">
jQuery.noConflict();
(function($){

all_images = new Array ("slides/1/1.jpg","slides/1/2.jpg");
all_images_2 = new Array ("slides/2/1.jpg","slides/2/2.jpg");
all_images_3 = new Array ("slides/3/1.jpg","slides/3/2.jpg");
all_images_4 = new Array ("slides/4/1.jpg","slides/4/2.jpg");
all_images_5 = new Array ("slides/5/1.jpg","slides/5/2.jpg");
var ImgNum = new Array (0,0,0,0,0);
time=2500;

function chgImg(whois,mass,num) {
ImgNum[num]++;
if (ImgNum[num] > mass.length - 1) { ImgNum[num] = 0; }
$('#'+whois).fadeOut(time, function() {$(this).attr('src', mass[ImgNum[num]]).fadeIn(time);});
}

})(jQuery);
</script>
15.09.2013 15:36:37
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #6
RE: Конфликт скриптов при добавлении jQuery
Конкретно в Вашем случае необходимо сделать следующее:
1) Подключайте библиотеку jQuery раньше, чем prototype.js (перенесите строчку <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> выше).
2) Внутрь jQuery.noConflict(); (function($){ })(jQuery); стоит помещать только jQuery код:

PHP код:
function chgImg(whois,mass,num) {
ImgNum[num]++;
if (
ImgNum[num] > mass.length 1) { ImgNum[num] = 0; }
jQuery.noConflict();
(function($){
$(
'#'+whois).fadeOut(time, function() {$(this).attr('src'mass[ImgNum[num]]).fadeIn(time);});
})(
jQuery);

15.09.2013 15:48:10
Найти все сообщения Цитировать это сообщение
player Не на форуме
Ефрейтор
*

Сообщений: 10
У нас с: Aug 2014
Сообщение: #7
RE: Конфликт скриптов при добавлении jQuery
Доброго времени суток! Есть проблема с несколькими версиями библиотеки jquery на сайте Ucoz. На самом сайте подключена автоматически библиотека версии 1.7.2. Мне нужно подключить вот эти:
//code.jquery.com/jquery-1.9.1.js и //code.jquery.com/ui/1.10.4/jquery-ui.js. Конфликтует только 1.9.1. Но без ее подключения функционал не работает, нужно обязательно обе. Решение выше к сожалению не помогло. Можно ли как то поправить это?
15.08.2015 02:49:01
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #8
RE: Конфликт скриптов при добавлении jQuery
Нужно попробовать каким-то образом отключить библиотеку версии 1.7.2.
Для это Вам надо в самом движке сайта ковыряться или обратиться в службу поддержки Ucoz-а.
15.08.2015 17:40:06
Найти все сообщения Цитировать это сообщение
player Не на форуме
Ефрейтор
*

Сообщений: 10
У нас с: Aug 2014
Сообщение: #9
RE: Конфликт скриптов при добавлении jQuery
Проблема в том, что даже если сменить версию на 1.10.2 скрипт не работает и конфликт все равно есть. Тут именно в 1.9.1 проблема. Может быть есть еще какие-нибудь варианты решения? Читал про плагин jQuery Migrate, но не особо разобрался что это, зачем и почему.
15.08.2015 18:20:34
Найти все сообщения Цитировать это сообщение
player Не на форуме
Ефрейтор
*

Сообщений: 10
У нас с: Aug 2014
Сообщение: #10
RE: Конфликт скриптов при добавлении jQuery
В общем, очень логичное решение. Поменял версию библиотеки на другую, которая не конфликтует и все хорошо.
15.08.2015 20:28:48
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru