2010-11-09 3 views
1

Construire un site web. Lorsque je commande mes tags comme celui-ci, Lightcycle fonctionne mais ne Lightbox:Pourquoi prototype.js interfère-t-il avec des opérations javascript non liées?

fonctionne Lightcycle, Lightbox n'a pas:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script type="text/javascript" src="./js/prototype.js"></script> 

Lorsque je commande comme ça, mais fonctionne Lightbox Lightcycle doesn » t:

Lightbox fonctionne, lightcycle n'a pas:

<script type="text/javascript" src="./js/prototype.js"></script>  
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

Frustrant.

+0

Si jQuery.noConflict() n'a pas résolu le problème, pourriez-vous fournir des liens vers les plugins Lightcycle et Lightbox que vous utilisez. Lightcycle en particulier peut avoir un bug qui ne fonctionne pas correctement si $ est utilisé par une autre bibliothèque. –

+0

Bien sûr, pas de problème CycleLite: http://malsup.com/jquery/cycle/lite/ – WednesdayWolf

+0

Et la visionneuse: http://www.lokeshdhakar.com/projects/lightbox2/ – WednesdayWolf

Répondre

2

Parce qu'ils utilisent le même raccourci $.

les opérations suivantes:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript">jQuery.noConflict();</script> 
<script type="text/javascript" src="./js/prototype.js"></script> 
+0

Essayé cela, il a fait fonctionner la Lightbox mais pas le LightCycle. – WednesdayWolf

+1

Dans ce cas, le plug-in LightCycle n'a pas été codé conformément aux instructions de création du plugin jQuery. – Hamish

0

Donc, en utilisant rêves Surreal recontamination, je mis en œuvre ceci:

<script src="./prototype.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

    <script> 
    var $j = jQuery.noConflict(); 

    // Use jQuery via $j(...) 
    $j(document).ready(function(){ 
     $j("div").hide(); 
    }); 

    // Use Prototype with $(...), etc. 
    $('someid').hide(); 
    </script> 


<script type="text/javascript" src="./js/scriptaculous.js?load=effects,builder"></script> 
<script type="text/javascript" src="./js/lightbox.js"></script> 

<script type="text/javascript" src="http://malsup.github.com/chili-1.7.pack.js"></script> 
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.lite.1.0.min.js"></script> 

<script type="text/javascript"> 

$(function() { 
    $('#slideshow1').cycle({ 
     delay: 2000, 
     speed: 1000, 
    }); 


}); 

</script> 

La prochaine question qui vient à l'esprit est ce que pour remplacer 'someid' avec. Je suppose '# slideshow1'. Mais ce qui s'affiche lorsque je fais cela est juste une page noire. Ennuyeux.

Questions connexes