11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai plusieurs codes JS sur ma page, il y a apparemment des conflits mais je n'arrive pas à les résoudre, bien qu'en interne cela fonctionne, mais pas une fois en ligne Smiley decu

il y a 2 codes de bibliothèques jQuiery dedans
comme le jQuery noncflict ne donnais rien, je les ai rapatriées et renommées autrement
de nouveau, en interne pas de prob, en ligne ça coince

voici les appels qui font conflits :

- premier appel en <head> le min.js était initialement appelé jquery.min.js
le renommer ne pose pas de problème de fonctionnement comme vous pouvez le constater ici : http://www.monoarch.be
mais une fois que j'intègre le 2ème appel que vous trouverez ci-dessous, ça bugge, il ne fonctionne plus Smiley decu

<!-- Start VisualLightBox.com HEAD section -->
		<link rel="stylesheet" href="popup/vlb_files1/vlightbox1.css" type="text/css" /> 
			<link rel="stylesheet" href="popup/vlb_files1/vlightbox2.css" type="text/css" />
		<link rel="stylesheet" href="popup/vlb_files1/visuallightbox.css" type="text/css" media="screen" />
<script src="popup/vlb_engine/min.js" type="text/javascript"></script>
		<script src="popup/vlb_engine/visuallightbox.js" type="text/javascript"></script>
		<!-- End VisualLightBox.com HEAD section -->


- 2ème appel, en fin de <body> qui fait conflit
il fait appel à la librairie jQuery que j'ai rapatrié sur le serveur et renommée, en dépit de cause
celui-ci fonctionne tjs, quel que soient les autres js appelés, mais il empêche le visuallightbox de fonctionner Smiley decu - vous verrez que j'ai utilisé le jQuery nonconflict, mais ça ne change rien:

<script src="affichage.js"></script>
    <script type="text/javascript">
$.noConflict();
    jQuery(document).ready(function(){
        var collection = jQuery("#realisations div").get();
        collection.sort(function() {
            return Math.random()*29 > 5 ? 1 : -1;
        });
        jQuery.each(collection,function(i,el) {
            jQuery(el).appendTo( jQuery(el).parent() );
        });
    });

</script>

- il y a 2 autres js dans la page, qqui ne font pas appel à jQuery, et ils ne posent aucun problème

csi quelqu'un à la solution ?

merci d'avance
jacq
Modifié par jacq (25 Feb 2016 - 10:51)
jacq a écrit :
Bonjour,
j'ai plusieurs codes JS sur ma page, il y a apparemment des conflits mais je n'arrive pas à les résoudre, bien qu'en interne cela fonctionne, mais pas une fois en ligne. Il y a 2 codes de bibliothèques jQuery dedans.

Bonjour. Deux lib' jQuery pour une même page c'est beaucoup trop. Il faut peut-être déjà commencer par en supprimer une et porter les efforts sur le vieux script qui pose problème à la version la plus récente, car il ne peut s'agir que de cela non ? Et puis, tant qu'à faire, mettre tous les scripts dans le footer plutôt que dans le head, c'est mieux pour l'optimisation.

Sinon, je pense qu'il s'agit d'un problème de chemin, comme 99,99% des problèmes de ce genre. Je vois que les liens sont relatifs, ce qui explique peut-être une différence entre le site en local et celui en ligne. À vérifier.
merci déjà de m'avoir répondu
pour les chemins, ils sont corrects
MAIS j'ai mis le js des diaporamas en footer et .... ça marche maintenant !
il s'agissait donc simplement de ça ? apparemment
encore merci !
Si le fait de passer les scripts en footer a suffi pour résoudre le problème, il est probable que la librairie utilise un élément du DOM et requiert donc que ce dernier soit intégralement chargé et analysé avant exécution.
Quant à savoir quel est l'élément concerné... y a plus qu'à disséquer le code.
oui mais bon, ça fonctionne, je vais pas aller jusque là Smiley cligne
je suis déjà bien content Smiley smile )