jQuery Problem mit anderen JavaScript Bibliotheken

jQuery

JavaScript Bibliotheken sind eine praktische Sache und erfreuen sich großer Beliebtheit. Besonders hervorgetan aus dem Wust von Libraries à la Prototype, Scriptaculous, Dojo, Mootools, etc. hat sich jQuery. jQuery ermöglicht einem ohne großen Aufwand zahlreiche Problemstellungen wie bspw. nette Effekte sehr schnell zu lösen. Die Bibliothek ist leicht in die eigene Website eingebunden und es kann losgehen. jQuery

Doch beim Einsatz in Content Management Systemen (CMS) kann es plötzlich zu Problemen kommen und die gewünschten Effekte treten nicht ein, oder manch andere Plugins funktionieren nicht mehr. Woran liegt das?

Nun jQuery arbeitet mit der Dollar-Syntax $(…) um DOM-Elemente anzusprechen. Leider verwenden andere JavaScript Bibliotheken auch diese Syntax. Deshalb kann es hier schnell zu Konflikten kommen. Joomla! ist z.B. so ein Kandidat. Joomla! verwendet intern Mootools, weshalb auch viele Joomla! Plugins mit Mootools arbeiten. Wenn Sie also zusätzlich noch jQuery in Ihre Website, bzw. Ihr Template eingebaut haben, dann kann schon mal was schief gehen.

Wie löst man nun diese Konflikte? Glücklicherweise gibt es in jQuery den sogenannten Kompatibilitätsmodus (compatibility mode), welcher einem den Einsatz neben anderen JavaScript Bibliotheken ermöglicht. Das sieht dann so aus:

[html] [/html]

.

Das Ganze funktioniert so: erst ruft man die Funktion noConflict() auf, dann folgt der ganz normale jQuery Code, jedoch wird jQuery hier immer mit jQuery(…) angesprochen, statt wie üblich mit dem Dollar Zeichen $(…). Darunter kann man dann seine anderen Bibliotheken mit dem $ ansprechen. Hier die offizielle Dokumentation von jQuery.