Как я могу использовать две разные версии библиотеки JQUERY

0

Я использую внешний JQuery-плагин в моем проекте. В плагине они используют jquery-1.3.2.js. Для моей функциональности я использую jQuery/1.10.2/jquery.min.js.

Проблема в том, что если я комментирую jquery-1.3.2, некоторые функции плагина не работают. Если у меня есть обе библиотеки, JQuery на методе не работает.

// This will not work if we have both the libraries.

$(document.body).on('click', '.productWrap', function(){
    alert ("reaching here");
});

Я не знаю, какая функциональность плагина использует jQuery-1.3.2.

Как исправить эту проблему, чтобы плагин и метод могли работать отлично, без каких-либо серьезных изменений в коде.

  • 0
    Вы действительно не должны использовать две версии jQuery вместе. Найдите более новую версию плагина или другой плагин, который использует более новую версию jQuery.
  • 1
    @ShadowWizard: вы не правы, вы можете использовать несколько версий jQuery ...
Показать ещё 2 комментария
Теги:

2 ответа

2

Да, это возможно; просто используйте $.noConflict(true); :

<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>

<!-- load jQuery 1.10.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
var jQuery_1_10_2 = $.noConflict(true);
</script>

Пример:

Вместо

$('#selector').function();

вы бы сделали

jQuery_1_3_2('#selector').function();

или

jQuery_1_10_2('#selector').function(); ,

  • 0
    Спасибо за ответ. На самом деле я знал этот ответ. Но для этого мне нужно внести изменения как в плагин, так и в мой код. Каждый селектор мне нужно заменить на правильную версию библиотеки. Также я должен знать, где использовать jQuery_1_3_2 и где использовать jQuery_1_10_2. Есть ли способ избежать этого ??
  • 0
    @DeveshAgrawal: нет, просто псевдоним. (function($) { /*your code here*/ }(jquery_x_x_x));
Показать ещё 2 комментария
1

Вы можете сделать это, используя jquery.noConflict - http://api.jquery.com/jQuery.noConflict/

Включите версию jQuery версии 1.3.2.

Затем включите версию jQuery версии 1.10.2.

Тогда сделайте,

var j = jQuery.noConflict();

В дальнейшем, если вы используете $ в своем скрипте, вы должны использовать j. Пример: $ ("# id1") => j ("# id1")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню