Faire cohabiter jQuery et Prototype ou Mootools
Posé ici le mercredi 13 août 2008 à 02:19 par

Les librairies telles que Prototype, MooTools ou jQuery (pour ne parler que des plus connues) ont changé la face du web et ont permis au 'Web2.0' de devenir ce qu'il est.
Seulement, toutes ces librairies travaillent sur le même terrain, ce qui rend leur mode de fonctionnement similaire et leur jeu de fonctions souvent incompatible. Par exemple, les trois plus célèbres frameworks Javascript du marché n'arrivent pas à cohabiter en raison de l'utilisation de la fonction $().
Alors que MooTools et Prototype ne semblent pas se soucier du sujet, jQuery propose heureusement un mode noConflit(). Voici un exemple d'utilisation :
Exemple de jQuery.noConflict()
<html>
<head>
<title>Cohabitation jQuery et autres librairies</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<style type="text/css">
.jquery {
color:#FFF;
background-color:green;
}
.prototype {
color:#FFF;
background-color:red;
}
</style>
</head>
<body>
<div id="jquery">Coloré par jQuery</div>
<div id="prototype">Coloré par Prototype</div>
<script type="text/javascript">
// jQuery en action
jQuery.noConflict();
jQuery('#jquery').addClass('jquery');
// Prototype en action
$('prototype').addClassName('prototype');
</script>
</body>
</html>
Ainsi appelé, jQuery pourra être utilisé par jQuery() au lieu de $(). Notez que l'inclusion de la librairie jQuery se met en dernier. Démarche identique pour MooTools.
Il n'existe pas, à ma connaissance, de solution simple pour faire travailler MooTools avec Prototype.

