2009-05-13 3 views
1

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

<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/ Любая помощь будет оценена. Спасибо

ответ

4

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

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

После того, как вы удалили второй Jquery библиотеки из Thickbox перестал работать, потому что Thickbox 3,1 не поддерживает JQuery 1.3+, но это можно легко исправить с помощью changing a single line in thickbox.js от:

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

в

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

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

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

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

$(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 самостоятельно.

+0

Ну, это исправляет проблему с толстой кишкой, но аккордеон все равно не будет играть хорошо. Он постоянно расширяется. – Drew

+0

Использование firebug Я также получаю сообщение об ошибке «$ (« # sidebar ul »). Аккордеон не является функцией». – Drew

+0

Я думаю, проблема в том, что у вас есть два сценария jquery. Попробуйте удалить скрипт jquery.js. – brianpeiris

 Смежные вопросы

  • Нет связанных вопросов^_^