Конфликт двух версий javascript

An27

МАСТЕР
Регистрация
03.07.2010
Сообщения
1,734
Реакции
613
Поинты
43.430
Идет конфликт подключенных яваскриптов.
PHP:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
  <!-- Add jQuery library -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<!-- Add mousewheel plugin (this is optional) -->
<script type="text/javascript" src="fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>

<!-- Add fancyBox -->
<link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="fancybox/jquery.fancybox.css" type="text/css" media="screen" /

<!-- Optionally add helpers - button, thumbnail and/or media -->
<link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6"></script>

<link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>
<script type="text/javascript">
   $(document).ready(function() {
      $(".fancybox").fancybox();
   });
</script>
  
  <link rel="icon" href="images/icon.png" type="image/x-icon" />
  <!-- Styles -->  
  <link rel="stylesheet" href="images/bootstrap.min.css">
  
  <link rel="stylesheet" href="images/style.css"> 
   
  <link rel="stylesheet" type="text/css" href="slider/css/fancybox.css" media="screen" />
  <script type="text/javascript" src="slider/js/js_jquery.js"></script> 
  <script type="text/javascript" src="slider/js/core_ajaxconst.php"></script>
  <script type="text/javascript" src="slider/js/jquery.selectbox.js"></script>
  <script type="text/javascript" src="slider/js/js_scripts.js"></script>

И основной конфликтующий файл:
PHP:
<script src="images/jquery-1.9.1.min.js" type="text/javascript">
Из-за него не работает фансибокс. Если закоментить последний jquery-1.9.1.min.js - то работает фанси, но модальные окна не работают :(
Как решить проблему?

1. Добавить содержимое в другой js - не помогло.
Может подскажите? может сталкивались и скажите куда именно добавить добавить содержимое :) Спасибо.

з.ы. в долгу не останусь.
 

dkameleon

МАСТЕР
Регистрация
14.12.2006
Сообщения
4,237
Реакции
3,167
Поинты
0.000
у вас их вообще три штуки.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<!-- Add jQuery library -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>


оставьте только jquery-latest.min.js
и обновите плагины.

ну и текст ошибок надо смотреть, возможно заюзать либу для обратной совместимости джкваери.
https://github.com/jquery/jquery-migrate
 
Последнее редактирование:

An27

МАСТЕР
Регистрация
03.07.2010
Сообщения
1,734
Реакции
613
Поинты
43.430
и обновите плагины.
Спасибо за ответ :)
Убирал комментированием, сейчас полностью удалил - ситуация та же. В другой теме подсказали подставить noConflict, сама конструкция с ноконфликт работает, но ситуация не меняется.

добавлено через 2 минуты
Вот код ноконфликта для фансибкоса
PHP:
<script>
noconf=jQuery.noConflict(true);
	noconf(document).ready(function() {
		noconf(".fancybox").fancybox({
		min-width: 999,
		height: 50
	});
	
</script>
 
Последнее редактирование:

mr Dev

Интересующийся
Регистрация
13.05.2016
Сообщения
55
Реакции
34
Поинты
0.000
Вот код ноконфликта для фансибкоса
PHP:
<script>
noconf=jQuery.noConflict(true);
	noconf(document).ready(function() {
		noconf(".fancybox").fancybox({
		min-width: 999,
		height: 50
	});
	
</script>

А теперь проходимся глазами вверх от этого участка кода и видим, что перед ним мы подключаем:
PHP:
<script src="images/jquery-1.9.1.min.js"  type="text/javascript"></script>
То есть, простыми словами, написанный вами код говорит "Используй jQuery версии 1.9.1 (он подключен последним) для FancyBox-а", когда как у вас fancybox как раз-таки не хочет с этой версией работать :rolleyes:

А вообще подобный вопрос поднимался на stackoverflow. Там и ответ дали с пропатченной библиотекой fancybox-а :thumbsup: Не проверяли? :wink2:
 

An27

МАСТЕР
Регистрация
03.07.2010
Сообщения
1,734
Реакции
613
Поинты
43.430
он подключен последним
В общем, все решил переставлянием яваскриптов. Сначала версию 1.9.1 подключил. Потом фансибокс. Заработало, но тогда неправильно работала форма заказа (модальное окно), и тогда я 3 файла (форма заказа, маска для заполнения и еще одну) поставил после фансибокса.
Все заработало как надо :)

с пропатченной библиотекой fancybox
Не помогло.
Спасибо огромнешнее.

з.ы. как здесь можно перевести денежку? :)
 

mr Dev

Интересующийся
Регистрация
13.05.2016
Сообщения
55
Реакции
34
Поинты
0.000
  • Like
Реакции: An27

Wie

Любитель
Регистрация
24.05.2015
Сообщения
218
Реакции
24
Поинты
0.000
Вставлю свою 5 копеек.. Подключайте последнюю версию jquery.. Советую лить в папку, а не подключать удалённо. И разумеется не напутать с путём подключения. Никогда не подключайте несколько разных версий Jquery///Хватит и одной :)
 

An27

МАСТЕР
Регистрация
03.07.2010
Сообщения
1,734
Реакции
613
Поинты
43.430
Никогда не подключайте несколько разных версий Jquery
был клиентских сайт, где использовались разные функции на лендинге :)

Подключайте последнюю версию jquery.
иногда новый ДЖ меняет синтаксис функций, и старые не работают.
 

Wie

Любитель
Регистрация
24.05.2015
Сообщения
218
Реакции
24
Поинты
0.000
был клиентских сайт, где использовались разные функции на лендинге :)


иногда новый ДЖ меняет синтаксис функций, и старые не работают.

Я понимаю. Тут надо решать в каждой ситуации уже. И разумеется лучше использовать более новые технологии, чем велосипедить старые)
 

An27

МАСТЕР
Регистрация
03.07.2010
Сообщения
1,734
Реакции
613
Поинты
43.430
И разумеется лучше использовать более новые технологии, чем велосипедить старые)
У меня был выбор - писать человеку новые функции (но я не знал даже где убирать старые) без дополнительной оплаты или же убрать конфликт за оговоренную плату.
В общем, второй вариант мне лучше, да и полезный :)
 
Сверху Снизу