Pregunta

Estoy teniendo un problema con thickbox y acordeón en la misma página es decir, ninguno de ellos funciona. He comprobado que ambos utilizan la última versión de jQuery. A continuación se incluye mi. No hay otros archivos de JScript incluidos. Estoy usando esto en una plantilla de wordpress si esto puede causar 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" />

Esta es la llamada a la acordeón:

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

La url de mi sitio es http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/ Cualquier ayuda sería muy apreciada. Gracias

¿Fue útil?

Solución

Su codificado incluido referencias a dos versiones de la biblioteca jQuery. La primera (jquery-1.3.2.min.js) se amplió con el plugin acordeón pero luego se sobrescribe con la segunda biblioteca (jquery.js).

Esto rompió el código de $('#sidebar ul').accordion(); debido a que la segunda biblioteca jQuery no contenía una definición para la función accordion (Sólo la primera biblioteca jQuery se amplió con el plugin de acordeón).

Una vez que haya extraído la segunda biblioteca jQuery la thickbox dejó de funcionar debido a thickbox 3.1 no es compatible con jQuery 1.3+, pero esto se puede solucionar fácilmente por cambiar una sola línea en thickbox.js de:

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

a

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

Otros consejos

No estoy seguro de por qué está usando la función noConflict en su sitio - esto está destinado a desactivar el acceso directo en $ jQuery por lo que se puede utilizar con las bibliotecas en conflicto como prototipo. Desde su sitio web sólo parece estar usando código basado en jQuery, que no necesita esto.

Después de haber desactivado el acceso directo $ está causando un error fatal en el código de Thickbox, que es a su vez estrellarse la JS para toda la página.

Trate de deshacerse del código noConflict y simplemente llamar a la función directamente acordeón, así:

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

Además, no se debe incluyendo tanto jquery.accordion-1.2.2.js y jquery.accordion-1.2.2.source.js, sólo tiene que utilizar la versión jquery.accordion-1.2.2.js comprimido por sí mismo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top