Проект, над которым я работаю, требует использования jQuery на веб-страницах клиентов. Клиенты будут вставлять кусок кода, который мы предоставим, который включает несколько <script>
элементов, которые создают виджет в <script>
-created <iframe>
. Если они еще не используют последнюю версию jQuery, это также будет включать (скорее всего) a <script>
для размещенной в Google версии jQuery.
Проблема в том, что у некоторых клиентов уже может быть установлена более старая версия jQuery. Хотя это может сработать, если это, по крайней мере, довольно свежая версия, наш код опирается на некоторые недавно представленные функциональные возможности в библиотеке jQuery, поэтому обязательно будут случаи, когда версия jQuery клиента просто устарела. Мы не можем требовать от них обновления до последней версии jQuery.
Есть ли способ загрузить более новую версию jQuery для использования только в контексте нашего кода, которая не будет мешать или влиять на какой-либо код на странице клиента? В идеале, может быть, мы могли бы проверить наличие jQuery, определить версию и, если она слишком старая, каким-то образом загрузить самую последнюю версию, чтобы использовать ее для нашего кода.
У меня была идея загрузить jQuery в <iframe>
домене клиента, который также включает в себя наш <script>
, что кажется вполне осуществимым, но я надеюсь, что есть более элегантный способ сделать это (не говоря уже о снижении производительности и сложности). дополнительные <iframe>
s).
источник
Ответы:
Да, это возможно благодаря режиму jQuery noconflict. http://blog.nemikor.com/2009/10/03/using-multiple-versions-of-jquery/
Тогда вместо того
$('#selector').function();
, чтобы сделатьjQuery_1_3_2('#selector').function();
илиjQuery_1_1_3('#selector').function();
.источник
(function($) { /*your code here*/ }(jquery_x_x_x));
Посмотрев на это и попробовав, я обнаружил, что на самом деле он не позволяет запускать более одного экземпляра jquery одновременно. После поисков вокруг я обнаружил, что это просто помогло, и кода было намного меньше.
Тогда добавление «j» после «$» - это все, что мне нужно было сделать.
источник
(function($){ })($j)
Взято с http://forum.jquery.com/topic/multiple-versions-of-jquery-on-the-same-page :
$
иjQuery
принадлежит версии X.$
иjQuery
принадлежите к версии Y, плюс_$
и_jQuery
принадлежите к версии X.my_jQuery = jQuery.noConflict(true);
- теперь$
иjQuery
принадлежат версии X,_$
и_jQuery
, вероятно, имеют значение null иmy_jQuery
являются версией Y.источник
Вы можете иметь столько разных версий jQuery на своей странице, сколько захотите.
Используйте
jQuery.noConflict()
:ДЕМО | Источник
источник
Можно загрузить вторую версию jQuery, использовать ее, а затем восстановить исходную или сохранить вторую версию, если jQuery не был загружен ранее. Вот пример:
источник
Я хотел бы сказать, что вы всегда должны использовать последние или последние стабильные версии jQuery. Однако, если вам нужно поработать с другими версиями, вы можете добавить эту версию и переименовать ее
$
в другое имя. НапримерПосмотрите здесь, если вы напишите что-нибудь, используя,
$
то вы получите последнюю версию. Но если вам нужно что-то сделать со старым, просто используйте$oldjQuery
вместо$
.Вот пример
демонстрация
источник
Абсолютно, да, вы можете. Эта ссылка содержит подробную информацию о том, как этого добиться: https://api.jquery.com/jquery.noconflict/ .
источник