Невозможно использовать плагин jquery, используя более высокую версию jquery, при одновременной загрузке двух версий jquery - PullRequest
0 голосов
/ 06 февраля 2012

Наш проект работает на jquery 1.3.2, да, очень старая версия, я знаю.В любом случае, мы не собираемся обновлять это прямо сейчас.Нам просто нужно использовать выбранный плагин jquery (ссылка на скачивание - https://github.com/harvesthq/chosen) прямо сейчас, для которого требуется как минимум jquery 1.4. Итак, я следовал следующему решению, чтобы загрузить обе версии jquery на одном и том жестраница -

https://stackoverflow.com/a/1566644/351903

Но я не могу позвонить выбранному на более новой версии jquery. Вот что я сделал -

1. В части загрузки jquery

<script type="text/javascript" src="/js/jquery.js"></script>

<!-- Added for using jQuery chosen plugin -->
<script type="text/javascript" src="/js/jquery-1.4.min.js"></script>
<script type="text/javascript">
    var jQuery_1_4 = $.noConflict(true);
</script> 

Примечание - я не написал следующее для более старой версии jquery, потому что я не хотел заменять везде, где у меня естьнаписано что-то вроде $("something").somefunc() с этим jQuery_1_3_2("something").somefunc() -

<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>

2. И затем, в плагине, вызывающем часть

<link rel="stylesheet" type="text/css" href="/css/chosen.css"/>
<!--  <script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.min.js"></script> -->
<script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.js"></script>
<script type="text/javascript">
jQuery_1_4(document).ready(function() 
{
    jQuery_1_4("select#user_id").chosen();  //Trying to call chosen on the newer version of jquery
});
</script>

Но я получаюэта ошибка jQuery_1_4("select#user_id").chosen is not a function.

Однако это работает правильно - alert("see"+jQuery_1_4("select#user_id").attr("id"));.

Итак, проблема, кажется, только при использовании плагина и может быть, я должен сделать некоторую настройку внутрикод плагина, может быть заменить некоторые $ с jQuery_1_4? Но это не звучит хорошо, и я не уверен, чтоэто правильный путь.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

Если вы хотите сохранить старую версию по умолчанию, вы должны сделать var jQuery = $.noConflict(true); сразу после загрузки старой версии.Тем не менее, вам все равно нужно проверить ваши $("something").somefunc() звонки

0 голосов
/ 06 февраля 2012

вызывайте noConflict () ДО включения второй версии jQuery

...