Pergunta

Estou tendo um problema usando thickbox e acordeão na mesma página ou seja, nenhum deles funciona. Tenho verificado que ambos usam a última versão do jQuery. Abaixo estão as minhas inclui. Não há outros arquivos JScript incluídos. Eu estou usando este em um modelo wordpress, se isso pode causar um 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" />

Aqui está a chamada para acordeão:

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

O url para o meu site é http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/ Qualquer ajuda seria muito apreciada. Graças

Foi útil?

Solução

As suas referências incluídas codificadas para duas versões da biblioteca jQuery. O primeiro (jquery-1.3.2.min.js) foi estendido com o plug-in acordeão, mas, em seguida, foi substituída pela segunda biblioteca (jquery.js).

Esta quebrou seu código $('#sidebar ul').accordion(); porque a segunda biblioteca jQuery não contém uma definição para a função accordion (Apenas a primeira biblioteca jQuery foi estendido com o plugin acordeão).

Uma vez que você removeu a segunda biblioteca jQuery o thickbox parou de funcionar porque thickbox 3.1 não suporta jQuery 1.3+, mas isso pode ser corrigido facilmente por mudar uma única linha em thickbox.js de:

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

para

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

Outras dicas

Eu não sei por que você está usando a função noConflict em seu site - isto é destinada a desativar o $ atalho no jQuery para que ele possa ser usado com conflitantes bibliotecas como Prototype. Desde o seu site só parece estar usando código baseado jQuery, você não precisa disso.

Tendo o atalho desativado $ está causando um erro fatal no código para Thickbox, que por sua vez é bater o JS para a página inteira.

Tente se livrar do código noConflict e apenas chamar a função accordian diretamente, assim:

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

Além disso, você não deve ser incluindo tanto jquery.accordion-1.2.2.js e jquery.accordion-1.2.2.source.js, basta usar a versão jquery.accordion-1.2.2.js comprimido por si só .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top