Domanda

Sto avendo un problema con thickbox e fisarmonica sulla stessa pagina cioè nessuno di loro lavoro. Ho controllato che entrambi utilizzano l'ultima versione di jQuery. Qui di seguito sono i miei include. Non ci sono altri file JScript inclusi. Sto usando questo su un modello di wordpress, se questo può causare un problema.

<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" />

Questa è la chiamata alla fisarmonica:

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

L'url al mio sito è http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/ Qualsiasi aiuto sarebbe molto apprezzato. Grazie

È stato utile?

Soluzione

Il tuo codice inclusi i riferimenti alle due versioni della libreria jQuery. Il primo (jquery-1.3.2.min.js) è stata estesa con il plugin fisarmonica, ma poi è stato sovrascritto dal secondo libreria (jquery.js).

Questo ha rotto il codice $('#sidebar ul').accordion(); perché la seconda libreria jQuery non contiene una definizione per la funzione accordion (solo la prima libreria jQuery è stato esteso con il plugin fisarmonica).

Una volta che è stato rimosso il secondo libreria jQuery il thickbox ha smesso di funzionare a causa thickbox 3.1 non supporta jQuery 1.3+, ma questo può essere risolto facilmente da cambiare una sola riga in thickbox.js da:

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

a

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

Altri suggerimenti

Non sono sicuro che il motivo per cui si sta utilizzando la funzione noConflict sul tuo sito - questo è inteso per disabilitare la scorciatoia $ in jQuery in modo che possa essere utilizzato con le librerie contrastanti come Prototype. Dal momento che il sito sembra solo per essere con codice basato jQuery, non hai bisogno di questo.

Dopo aver il $ scorciatoia disabilitato sta causando un errore fatale nel codice per Thickbox, che a sua volta blocca il JS per l'intera pagina.

Prova sbarazzarsi del codice noConflict e solo chiamando la funzione fisarmonica direttamente, in questo modo:

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

Inoltre, non si dovrebbe essere compreso sia jquery.accordion-1.2.2.js e jquery.accordion-1.2.2.source.js, basta utilizzare la compressa versione jquery.accordion-1.2.2.js da solo .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top