Możesz to osiągnąć, uruchamiając swoją wersję jQuery w no-conflict mode. Tryb "Brak konfliktu" jest typowym rozwiązaniem, które pozwala jQuery pracować na stronie z innymi frameworkami, takimi jak prototype, i może być również używany tutaj, ponieważ zasadniczo tworzy przestrzeń nazw dla każdej wersji jQuery, którą ładujesz.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Ta zmiana będzie oznaczać, że każda z tych rzeczy jQuery chcesz używać będą musiały być nazywane przy użyciu jq13
zamiast $
, np
jq13("#id").hide();
Nie jest to idealna sytuacja, aby mieć dwie wersje działające na tej samej stronie, ale jeśli nie masz alternatywę, to powyższe metody powinno pozwolić na użycie dwóch wersjach różniących się od razu.
się także z ciekawości, co gdybyśmy byli do korzystania z dodatkowej kontroli że potrzebne do odniesienia kolejną wersję jQuery?
Jeśli potrzebne, aby dodać kolejną wersję jQuery, można poszerzyć o powyższe:
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
jq131 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Zmienne jq13
i jq131
by każdy może być wykorzystywane do funkcji Version specyficzne wymagają.
To ważne, że jQuery stosowane przez oryginalnego dewelopera jest ładowany ostatni - oryginalny deweloper prawdopodobnie napisał swój kod przy założeniu, że $()
byłoby wykorzystując swoją wersję jQuery. Jeśli załadujesz inną wersję po ich, $
zostanie "złapany" przez ostatnią załadowaną wersję, co oznaczałoby kod oryginalnego dewelopera działający w najnowszej wersji biblioteki, czyniąc noConflicts
nieco zbędnym!
Czy autor autor kontroli nie zwalnia aktualizacji? A może nowsza wersja jest niekompatybilna? To bardzo dziwne, że komercyjny sprzedawca kontroli zewnętrznej utworzył kontrolkę, która jest zakodowana na stałe do konkretnej wersji javascriptu o otwartym kodzie źródłowym, która jest często aktualizowana. – BlackMael
Nie widzę, jak nie są wkręcane, jeśli używasz wielu kontrolek serwera, które wymagają stałych wersji jQuery. – BlackMael
Nie każdy autor wtyczki skrupulatnie aktualizuje/potrafi regularnie aktualizować swój kod. Ja też stanąłem przed tym problemem, ale potem przełączyłem się na często aktualizowany ekwiwalent społecznościowy. –