2 разных версии jquery
на сайте уже используется более 50-ти скриптов. И все они используют jquery 1.3.2
Я подключил lightbox. Он использует jquery 1,7,2. Все нормально установилось, но после подключения jquery 1,7,2 некоторые из старых скриптов перестали работать. Как подключить jquery 1,7,2 только для lightbox. (чтобы на остальные вскрипты он не повлиял) |
Информация для гугления - jQuery.noConfilct
|
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 на более свежие аналоги, от которых не воняет мертвечиной. |
можете развернуто ответить как это поможет устранить конфликт между двумя версиями 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); |
я обожаю гугл, снова он мне помог найти ответ на мой вопрос, а людей хрен допросишься, все к нему отправляют :lol:
|
А давайте ещё и Мутулз подключим!
|
EvgeniyRRU,
И в чем принципиальная магия jQuery.noConflict() ? Вы просто взяли мой код, и переписали его: 1) поменяли местами подключение jQuery 2) вернули обратно старый в качестве основного при помощи jQuery.noConflict() И в итоге вы все равно модифицировали скрипты, обернув(причем с ошибкой) их в замыкание, чтобы они могли работать с соответствующими jQuery Так что в итоге вы не ответили на главную часть вопроса Цитата:
|
Подключаете, новый и правите старый скрипт.
Для выяснения изменений посетите сайт jquery.com. А то, что вы делаете это полный бред. |
Gvozd,
согласен, это костыль. Но когда нет другого выхода, можно его и применить. |
Часовой пояс GMT +3, время: 20:49. |