2009-05-13 4 views
1

J'ai un problème en utilisant thickbox et accordéon sur la même page, c'est-à-dire qu'aucun d'entre eux ne fonctionne. J'ai vérifié qu'ils utilisent tous les deux la dernière version de jquery. Voici mes inclusions. Aucun autre fichier jscript n'est inclus. J'utilise ceci sur un modèle wordpress si cela peut causer un problème.Jquery accordéon et thickbox clash

<script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/themes/foxintouch/javascript/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/themes/foxintouch/javascript/jquery.accordion-1.2.2.js"></script> 
<script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/themes/foxintouch/javascript/jquery.accordion-1.2.2.source.js"></script> 

<!-- thickbox --> 

<script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/themes/foxintouch/javascript/thickbox/thickbox.js"></script> 
<link rel="stylesheet" href="<?php bloginfo('url'); ?>/wp-content/themes/foxintouch/javascript/thickbox/thickbox.css" type="text/css" media="screen" /> 

Voici l'appel à l'accordéon:

$(document).ready(function() { 
$('#sidebar ul').accordion(); 
}); 

L'URL pour mon site est http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/ Toute aide serait grandement appréciée. Merci

Répondre

4

Votre codé inclus des références à deux versions de la bibliothèque jquery. Le premier (jquery-1.3.2.min.js) a été étendu avec le plugin accordéon mais ensuite il a été écrasé par la deuxième bibliothèque (jquery.js).

Ceci a brisé votre code $('#sidebar ul').accordion(); car la deuxième bibliothèque jquery ne contenait pas de définition pour la fonction accordion (Seule la première bibliothèque jquery a été étendue avec le plugin accordéon).

Une fois que vous avez supprimé la deuxième bibliothèque jquery la thickbox a cessé de fonctionner parce que thickbox 3.1 ne supporte pas jQuery 1.3+ mais cela peut facilement être corrigé par changing a single line in thickbox.js de:

TB_TempArray = $("a[@rel="+imageGroup+"]").get(); 

à

TB_TempArray = $("a[rel="+imageGroup+"]").get(); 
1

Je ne sais pas pourquoi vous utilisez la fonction noConflict sur votre site - ceci est destiné à désactiver le raccourci $ dans jQuery afin qu'il puisse être utilisé avec des bibliothèques conflictuelles comme Prototype. Puisque votre site semble n'utiliser que du code jQuery, vous n'en avez pas besoin. La désactivation du raccourci $ provoque une erreur fatale dans le code de Thickbox, qui écrase le JS pour toute la page.

Essayez de se débarrasser du code noConflict et juste appeler la fonction directement accordian, comme ceci:

$(document).ready(function() { 
    $('#sidebar ul').accordion(); 
}); 

En outre, vous ne devriez pas y compris les jquery.accordion-1.2.2.js et jquery. Accordion-1.2.2.source.js, il suffit d'utiliser la version compressée jquery.accordion-1.2.2.js par lui-même.

+0

Eh bien, ceci corrige le problème de l'thickbox mais l'accordéon ne fonctionnera toujours pas bien. Il est étendu en permanence. – Drew

+0

En utilisant firebug, j'obtiens aussi une erreur disant "$ (" # sidebar ul "). Accordéion n'est pas une fonction". – Drew

+0

Je pense que le problème est que vous avez deux scripts jquery. Essayez de supprimer le script "jquery.js". – brianpeiris

Questions connexes