[Drupal/jQuery] Jak używać kilka wersji jQuery na jednej stronie?

Data dodania wpisu: 17-11-2010

Temat dotyczy defacto nie tyle samego Drupala co też np. innych Systemów Zarządzania Treścią, które natywnie obsługują starsze wersje jQuery niż dajmy na to 1.4.*, ponieważ może się okazać, że wiele z nich podczas tworzenia stron www może wymagać wykorzystania wielu bibliotek JavaScript na raz. Ale weźmy za przykład naszą niebieską kropelkę.

Ostatnie stabilne wydanie Drupala, czyli wersja numerek 6 standardowo obsługuje jQuery w wersji 1.2.6, a po zainstalowaniu modułu jQuery Update - 1.3.2. Problem jest, gdy nasz frontend i jego funkcjonalność wymaga jQuery w wersjach nowszych (rewizja 1.4.*). Jeżeli taką wersję załączymy do instalacji Drupala, niektóre funkcje administracyjne używające interfejsów z jQuery wylecą w powietrze. Myk jest bardzo prosty: przed załadowaniem właściwej wersji jQuery (standardowej, obsługiwanej przez CMS) wrzucamy wersję nowszą i od razu ładujemy ją do zmiennej z metodą noConflict(). Docelowo, na tej zmiennej opracowujemy swoje kawałki kodu dla frontendu.

Czyli, technicznie, kolejność ładowania jQuery w takiej sytuacji powinna wyglądać tak:

<script type="text/javascript" src="jQuery.1.4.4.js"></script>
<script type="text/javascript">var $j = jQuery.noConflict();</script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
  $j(document).ready(function(){
    alert($j().jquery); // alert dostarczy nam informacji, o wersji jQuery załadowanej do zmiennej, będzie to wersja 1.4.4 :)
  });
</script>

W ten sposób, możemy korzystać z niezależnych wersji jQuery osobno dla CMS'a (np. Drupal CMS) i dla frontendu, bez żadnych konfliktów po jednej i po drugiej stronie :)

Komentarze

Ten wpis nie posiada jeszcze komentarzy

Comments closed...