използване на множество версии на jquery-ui

Имаме сайтове, използващи jQuery UI и един от сайтовете включва някои части от другия сайт. Тези части са изградени върху Jquery UI Accordion, но не мога да заредя и двете версии на потребителския интерфейс. Едната е персонализирана компилация на 1.8.11, другата е пълна версия (пълната няма да се зареди)

някакви предположения?


person Rune FS    schedule 15.06.2011    source източник
comment
Някакви съобщения за грешка? Опитвате ли се да заредите две версии в един и същи сайт? Или искаш да кажеш, че имаш два сайта, всеки използва своя собствена версия и единият няма да работи?   -  person Jeff Sheldon    schedule 15.06.2011


Отговори (3)


Моля, прочетете документацията на JQUERY UI. Не можете да използвате две версии на потребителския интерфейс, без да посочите КОНТЕКСТ за всяка от тях.

Това ви позволява например да използвате множество потребителски интерфейси на една страница.

Лошата новина е, че след като файлът е генериран, не можете да добавите контекста след това.

Не съм сигурен, но мисля, че в javascript файловете, свързани с потребителския интерфейс, има връзка, която ще ви отведе до страницата за изграждане на потребителския интерфейс на JQUERY и там можете да генерирате отново потребителския интерфейс с контекст.

person T9b    schedule 15.06.2011
comment
поне е най-близко до който и да е идвал :). Това всъщност не решава проблема със зареждането на една и съща компилирана версия на потребителския интерфейс два пъти, но проблемът може да е същият - person Rune FS; 04.07.2011
comment
[на] страницата за изграждане на потребителски интерфейс на jQuery ... можете да генерирате отново потребителския интерфейс с контекст Имате ли справка за това? Страницата за изграждане на потребителския интерфейс на jQuery на jqueryui.com/download изглежда не споменава нищо, наречено „CONTEXT“, и то изглежда няма контроли за добавяне на такова нещо. - person fooquency; 01.03.2014
comment
Вярвам, че даването на UI на jQuery на собствен контекст е това, което Edger обяснява в своя отговор (stackoverflow.com/a/15836272/2598101) . По същество вие временно съхранявате променливата jQuery в променлива като var jQuery1 = window.jQuery;, след което зареждате скрипта (или вграден в HTML с маркера <script>, или програмно в JavaScript, последван от обратно извикване при зареждане), след което настройвате прясно заредения jQuery на друга променлива като var jQuery2 = window.jQuery; и след това възстановяване на стария като window.jQuery = jQuery1;. - person Joseph Shih; 25.05.2019

Разбрах това след час. По някаква причина никой не е обяснил това в интернет.

Първо извиквате версията на jQuery, която искате да бъде nonflicted:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
  var $jnine = jQuery.noConflict();
</script>

В този случай извиках новия jQuery $jnine във връзка с номера на версията.

Сега трябва да редактирате jquery-ui-1.10.0.custom.min.js. Това всъщност е много просто. Отворете го с любимия си текстов редактор, който поддържа търсене и замяна. Notepad++ според мен е най-добрият.

Сега ще потърсите (jQuery), чувствителен към главни и малки букви, и ще го замените с ($jnine) След това запазете файла където и да е и го стартирайте на вашия сайт СЛЕД като функцията noConflict() бъде изпълнена.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
  var $jnine = jQuery.noConflict();
</script>

<script src="js/jquery-ui-1.10.0.custom_jnine.min.js"></script>

Вече можете да извиквате всички функции на jQuery и jQuery ui с $jnine

Запомнете: Важно е да стартирате този скрипт ПРЕДИ да бъдат заредени други jQueries, освен ако те също не са били noConflicted.

person Jack Cole    schedule 06.02.2013

Друга опция е да заредите вашия потребителски интерфейс в неговия собствен контекст.

<script language="javascript" type="text/javascript">
   var smartDonationsOldJQuery=jQuery;
   var smartDonationsOldCashSign=$;
</script>

<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-1.9.1.min.js"></script>
<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-ui-1.10.2.custom.js"></script>

<script language="javascript" type="text/javascript">
    var rnSDJQ=jQuery;
    window.jQuery =smartDonationsOldJQuery;
    window.$ = smartDonationsOldCashSign;
</script>

Хубавото на това е, че ще имате собствено копие на jquery/jquery-ui, изолирано от останалата част от кода (това е наистина добре, ако създавате компоненти, като компоненти на wordpress). Лошото е, че ще трябва да заредете jquery отново.

Повече информация тук (отказ от отговорност, аз го написах): Използване на множество версии на jquery ui

person Edgar    schedule 05.04.2013