Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.05.2012, 17:41
Интересующийся
Отправить личное сообщение для agert Посмотреть профиль Найти все сообщения от agert
 
Регистрация: 08.12.2010
Сообщений: 16

2 разных версии jquery
на сайте уже используется более 50-ти скриптов. И все они используют jquery 1.3.2
Я подключил lightbox. Он использует jquery 1,7,2. Все нормально установилось, но после подключения jquery 1,7,2 некоторые из старых скриптов перестали работать. Как подключить jquery 1,7,2 только для lightbox. (чтобы на остальные вскрипты он не повлиял)
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2012, 01:48
Аватар для razerxxx
Аспирант
Отправить личное сообщение для razerxxx Посмотреть профиль Найти все сообщения от razerxxx
 
Регистрация: 05.10.2011
Сообщений: 85

Информация для гугления - jQuery.noConfilct
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2012, 03:07
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

razerxxx,
можете развернуто ответить как это поможет устранить конфликт между двумя версиями jQuery при использовании произвольных скриптов без необходимости их переработки?
Полагаю, что нет, и ответили вы не вникнув в вопрос.
agert,
наименее затратным в плане модификаций я вижу примерно такой способ:
<script src="jquery.1.7.2.js"></script>
<script>
var jquery_1_7_2 = jQuery;
</script>
<script src="jquery.1.3.2.js"></script>

все скрипты лайтбокса надо обернуть в такой код
(function(){
    var $ = jQuery = jquery_1_7_2 ;
    // тут код лайтбокса, что был в файле до нашего вмешательства.
})();

Тогда старые скрипты сохранят работоспособность, и скорее всего(зависит от кода лайтбокса) лайтбокс будет работать, и будет работать он с версией 1.7.2

А вообще, по-хорошему следует заменить скрипты использующие jQUery на более свежие аналоги, от которых не воняет мертвечиной.
Ответить с цитированием
  #4 (permalink)  
Старый 10.10.2012, 15:17
Интересующийся
Отправить личное сообщение для EvgeniyRRU Посмотреть профиль Найти все сообщения от EvgeniyRRU
 
Регистрация: 30.09.2011
Сообщений: 14

можете развернуто ответить как это поможет устранить конфликт между двумя версиями jQuery при использовании произвольных скриптов без необходимости их переработки?
Полагаю, что нет, и ответили вы не вникнув в вопрос.


Всё верно, всё jQuery.noConflict() решает. У меня получилось, нужно его использовать вместе с анонимным объявлением функций javascript.
На сайте используется jQuery времён палеолита (1.3.2), я совмещал с 1.8.2.
В блоке head подключается старая jQuery.
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

Далее в body подключаю версию поновее:
<script type="text/javascript" src="<?= JS_HTTP?>jquery-1.8.2.min.js"></script>
<script type="text/javascript">var jQuery_1_8_2 = jQuery.noConflict();</script>


И далее обе версии доступны таким образом:
(function($) {
//здесь располагается тот код, который работает со старой версией
})(jQuery);
(function($) {
//а вот здесь уже версия новая.
})(jQuery_1_8_2);
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2012, 23:43
Аватар для Mister-Fil
Новичок на форуме
Отправить личное сообщение для Mister-Fil Посмотреть профиль Найти все сообщения от Mister-Fil
 
Регистрация: 12.09.2011
Сообщений: 5

я обожаю гугл, снова он мне помог найти ответ на мой вопрос, а людей хрен допросишься, все к нему отправляют
Ответить с цитированием
  #6 (permalink)  
Старый 12.10.2012, 00:44
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

А давайте ещё и Мутулз подключим!
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 12.10.2012, 09:56
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

EvgeniyRRU,
И в чем принципиальная магия jQuery.noConflict() ?
Вы просто взяли мой код, и переписали его:
1) поменяли местами подключение jQuery
2) вернули обратно старый в качестве основного при помощи jQuery.noConflict()

И в итоге вы все равно модифицировали скрипты, обернув(причем с ошибкой) их в замыкание, чтобы они могли работать с соответствующими jQuery

Так что в итоге вы не ответили на главную часть вопроса
Сообщение от EvgeniyRRU
без необходимости их переработки?
Ответить с цитированием
  #8 (permalink)  
Старый 14.10.2012, 07:16
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

Подключаете, новый и правите старый скрипт.
Для выяснения изменений посетите сайт jquery.com.

А то, что вы делаете это полный бред.
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2012, 09:55
Интересующийся
Отправить личное сообщение для EvgeniyRRU Посмотреть профиль Найти все сообщения от EvgeniyRRU
 
Регистрация: 30.09.2011
Сообщений: 14

Gvozd,
согласен, это костыль. Но когда нет другого выхода, можно его и применить.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подключать jQuery? Hurray jQuery 2 26.04.2012 13:03
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
Не могу подогнать старый jQuery скрипт до версии 1.42 artnik jQuery 1 19.01.2011 18:02
jquery 1.4.2 + jquery.form: разное поведение ajaxSubmit в разных браузерах dmitry87 jQuery 3 30.10.2010 02:01
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55