monnaieancienne a écrit :
Je sais que parmi vous, il y a des super as en javascript!
Je viens de voir que JQuery n'était pas compatible avec prototype.js, du coup ça fout tous mes plans en l'air.
Est ce quelqu'un a réussi à les faire tourner ensemble? et si oui, comment?
J'ai bien trouver ça:
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').style.display = 'none';
Mais je ne sais pas ce que je dois mettre à la place des (...)
Merci de votre aide
BB
Personnellement, je n'ai pas eu l'occasion de faire fonctionner Prototype et JQuery ensemble. Cependant j'ai l'occasion de rencontrer ce problème de cohabitation avec Mootools.
Bon déjà pour répondre à ta question, à savoir quoi mettre à la place des (...), il s'agit juste d'indiquer la sélection de l'élément HTML que tu souhaite atteindre. Par exemple, en me basant sur ton code, si tu mets pour prototype, $('toto') tu récupérer l'élément HTML qui porte l'id 'toto'. Avec JQuery, vu que tu l'as associé à la variable $j, pour faire de même ça sera $j('#toto').
Pour en savoir plus, je ne saurais que te conseiller d'aller sur la doc de Prototype (Prototype API Documentation | Utility Methods (Deprecated URL)) et de Jquery (Selectors | jQuery API Documentation).
Une petite remarque cependant concernant ton bout de script. L'astuce pour éviter l'incompatibilité entre JQuery et d'autre frameworks javascript (qui utiliser également la fameuse fonction $()) c'est l'utilisation de la fonction jQuery.noConflict() pour définir une au variable différent pour effectuer les sélection sur le DOM (Avoiding Conflicts with Other Libraries | jQuery Learning Center).
Evidement, cela ne marche que si utilise la variable que tu as défini. Ce que je veux dire, c'est si dans ton squelette tu utilise des plugins qui utilisent également jQuery et qui insert leur propres fichiers javascript à travers #INSERT_HEAD, tu es mal barré. Puisque ces plugins eux n'utilisent pas ta variable, donc tu te retrouve encore en incompatibilité.
SI tu es dans ce cas, il te reste 4 possibilités :
1) Laisser tomber Prototype, et trouver le moyen de faire ce que tu voulais faire avec Prototype mais entièrement en JQuery.
2) Tu repasse dans tous les plugins utilisant JQuery pour modifier leur script javascript pour qu'il utilise la variable que tu as défini.
3) Tu trouve une solution alternative mais qui utilise JQuery.
4) Tu t’arranges pour que cette page squelette n’utilise pas ces plugins si c’est possible.
Enfin tu m’auras compris que le plus simple c’est d’utiliser que JQuery.
En espérant d'avoir aidé.
Cordialement,
GUIOUBLY William