Я использую внешний 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.
Как исправить эту проблему, чтобы плагин и метод могли работать отлично, без каких-либо серьезных изменений в коде.
Да, это возможно; просто используйте $.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();
,
(function($) { /*your code here*/ }(jquery_x_x_x));
Вы можете сделать это, используя jquery.noConflict - http://api.jquery.com/jQuery.noConflict/
Включите версию jQuery версии 1.3.2.
Затем включите версию jQuery версии 1.10.2.
Тогда сделайте,
var j = jQuery.noConflict();
В дальнейшем, если вы используете $ в своем скрипте, вы должны использовать j. Пример: $ ("# id1") => j ("# id1")