Konflikt mezi jQuery a MooTools

Tyto dvě externí knihovny jsou dnes velmi používané při tvorbě moderních a hezky vypadajících webů. Pokud se ale rozhodnete, že na jedné stránce použijete obě, může se stát, že spolu nebudou fungovat. Existuje ale postup jak tomuto konfliktu zabránit a ten si tu popíšeme...

jQuery je rychlá a relativně malá JavaScriptová knihovna (framework) pro snadné a rychlé psaní JavaScriptů např. na tvorbu animací a efektů na stránce. Nemusíte být ani expert v programování JavaScriptu abyste se s touto knihovnou setkali. Ke svému chodu ji vyžaduje hodně JavaScriptových "balíčků" které se dají snadno implementovat na webové stránky. jQuery využívá např. flashový přehrávač videí Flowplayer nebo další výborné efekty z dílny jQuery Tools. Poslední verze v době psaní tohoto článku je v1.4.3 o velikosti 26KB. Pro vložení na stránky si ji můžete stáhnout k sobě na server, nebo využít Google API (doporučuji pro rychlejší načítání) a vložit jej pomocí externího skriptu:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>

Upozorňuji, že pro použití všech knihoven od Googlu je třeba si nechat vygenerovat unikátní klíč (API key).

MooTools je stejně jako jQuery JavaScriptová knihovna (framework) jen od jiných autorů, jinak napsaná a s jinými funkcemi. Taktéž má své příznivce mezi programátory JavaScriptů a využívá jej třeba velmi známý prohlížeč obrázků a slideshow; Lightbox, Slimbox, SmoothGallery apod. Výběr dalších 48 scriptů pro Mootools najdete třeba ZDE. V současnosti je poslední verze MooTools v1.3 s velikostí 84KB. Přes Google API jej také můžete vložit pomocí tohoto externího skriptu:

<script src="http://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script>

Nyní k samotnému konfliktu mezi těmito dvěma knihovnami. Je velmi pravděpodobné, že při použití obou skriptů vám jeden z nich nebude fungovat. Problém je ve znaku $, který jQuery používá jako zástupce a může kolidovat s ostatními knihovnami. Řešení tohoto problému je následující: