depuis un bon bout de temps je me cassse la tête avec cette affaire de conflit, en fait j'utilise plusieurs bibliothèque(prototypes et jquery). J'ai pu trouver le bout de code qui soulage ce pb:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
le problème est le suivant: les codes qui utilisent les biliothèques suivantes ne se trouvent pas dans cette page, donc si j'ecris un truc du genre :
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 1 févr. 2013 à 09:10
salut,
jQuery et prototype fonctionnent bien ensemble avec le noConflict().
Par contre, $ est un raccourci utilisé par les deux librairies.
$.noConflict() est ambigu et peut très bien faire appel à prototype ou jQuery en fonction du moteur javascript qui est derrière et la manière dont sont chargées ces deux librairies.
jQuery.noConflict() est préférable à $.noConflict().
desole Alex, je n'étais pas la le week end, pour l'erreur de syntaxe j'avais tout juste oublier de l'enlever vue que ca provenait d'un echo.
Bon en fait,je dois ecris cette methode de conflict dans la balise <script></script> comme ceci:
<script type="text/javascript">(a)
jQuery.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.//(ici jquery)
});
// Code that uses other library's $ can follow here.//(ici autre bibliothèque)
</script>
Le code qui doit entrer dans la partie reservée pour le code utilisant jquery se trouve dans une autre page, donc je doit l'importer avec un truc du genre
(b).
Mais le problème est que si j'écris ca(b) dans la zone marquée en jaune,ca ne sera pas pris en compte, car la balise de fermeture </script> fermera la première(a).
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 4 févr. 2013 à 20:03
Ah oui ! Mais non !
Ce n'est pas normal ce que tu me racontes.
Déjà, comme tu l'as deviné, inclure du javascript dans du javascript, ce n'est pas possible.
Si, dans ton jQuery(document).ready(), tu dois utiliser du code jQuery provenant d'un autre fichier, tu dois faire une inclusion de ce fichier après l'instruction d'inclusion de jQuery et de préférence après l'instruction noConflict(). Comme :
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
// Appel du point d'entrée dans code.js
});
// Code that uses other library's $ can follow here.//(ici autre bibliothèque)
</script>
Après, il y a la méthode barbare : tu charges le fichier js coté serveur (php), en mode texte, tu le parses pour exclure les éventuelles balises <script> et tu écris le résultat (le javascript) dans la fonction ready(), pour que ce soit interprété coté client à la réception de la page (ready()).
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
<?php
// 1) Lecture du fichier code.js en mode texte
// 2) Extraction du javascript
// 3) Ecriture du javascript dans le html.
?>
});
// Code that uses other library's $ can follow here.//(ici autre bibliothèque)
</script>
je vais essayer, mais je crois que j'ai deja employe la première methode et ca n'a pas fonctionné, peut etre que j'ai aussi oublie quelque chose. Merci de ta reponse, je te tiens informé de l'avancé.