Вопрос

У меня проблема с использованием толстого ящика и аккордеона на одной странице, т.е. ни один из них не работает.Я проверил, что они оба используют последнюю версию jquery.Ниже приведены мои включения.Других файлов jscript не включено.Я использую это в шаблоне WordPress, если это может вызвать проблемы.

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

Вот призыв к аккордеону:

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

URL моего сайта http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/Любая помощь приветствуется.Спасибо

Это было полезно?

Решение

В вашем коде есть ссылки на две версии библиотеки jquery.Первый (jquery-1.3.2.min.js) был расширен плагином аккордеона, но затем был перезаписан второй библиотекой (jquery.js).

Это сломало твой $('#sidebar ul').accordion(); код, потому что вторая библиотека jquery не содержала определения для accordion (Только первая библиотека jquery была расширена плагином аккордеона).

После того, как вы удалили вторую библиотеку jquery, толстое поле перестало работать, поскольку толстое поле 3.1 не поддерживает jQuery 1.3+, но это можно легко исправить с помощью изменение одной строки в Thickbox.js от:

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

к

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

Другие советы

Я не уверен, почему вы используете функцию noConflict на своем сайте — она предназначена для отключения ярлыка $ в jQuery, чтобы его можно было использовать с конфликтующими библиотеками, такими как Prototype.Поскольку ваш сайт, похоже, использует только код на основе jQuery, вам это не нужно.

Отключение ярлыка $ вызывает фатальную ошибку в коде Thickbox, что, в свою очередь, приводит к сбою JS для всей страницы.

Попробуйте избавиться от кода noConflict и просто вызвать функцию аккордеона напрямую, например:

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

Кроме того, вам не следует включать одновременно jquery.accordion-1.2.2.js и jquery.accordion-1.2.2.source.js, просто используйте сжатую версию jquery.accordion-1.2.2.js отдельно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top