2011-10-04 3 views
1

le code suivant est problématique.Le conflit potentiel JQuery + Prototype.js

<script type="text/javascript" src="<javascript/prototype.js"></script> 
<script type="text/javascript"> 

// <![CDATA[ 
$(document).ready(function() { 

// Start Tabbing <--------------------- 
// Hide features tab 
$('#detailFeatures').hide(); 

$('#menu a').click(function(){ 

    if ($(this).attr('rel') == 'pdf') return true; 

    selected = $(this).attr('href'); 

    // Clear active tab 
    $('#menu li').removeClass('active'); 

    // Add class to clicked 
    tab = selected + 'Tab'; 
    $(tab).addClass('active'); 

    // Hide all content 
    $('.productTab').css('display','none'); 

    // Show selected tab 
    $(selected).css('display','block'); 

    return false; 

    }); 
// End Tabbing <------------------ 

Le code ci-dessus est utilisé pour créer un panneau à onglets qui permet de voir soit une vue d'ensemble du produit ou une liste des caractéristiques du produit

Dans la console im obtenir l'erreur « Uncaught TypeError: Object # n'a pas de méthode ' ready '"

Im en utilisant le prototype.js standard pour lightbox et jquery.js pour la tabulation, inchangé.

Merci d'avance.

+1

Pourquoi utiliser deux frameworks sur une page: \ – Raynos

+0

Eh bien, je ne suis pas trop confiant avec JS, la page avait déjà une méthode de tabulation et on m'a juste demandé d'implémenter une galerie d'images (lightbox-esque). Y at-il une version jquery de lightbox, ou très similaire? – Aleski

+0

Ce n'est pas seulement javascript que vous êtes mauvais à: http://tinyurl.com/6x8x3g6 –

Répondre

3

Enveloppez votre code dans une fonction anonyme:

(function($){ 
    //JQuery code here, example: 
    $(document).ready(...); 
})(jQuery); 

Ce morceau de code « convertit » $ « retour » à un objet JQuery, de sorte que le code à l'intérieur de cette enveloppe peut utiliser en toute sécurité les méthodes JQuery sur $.

+0

Enveloppé le tout dans la fonction et il ne semble pas aider. – Aleski

+0

Parce que vous avez ajouté '$ .noConflict()' à votre code .. Débarrassez-vous. –

+0

Merci frère, a travaillé un charme. – Aleski