1

我在同一页面上使用thickbox 和手风琴时遇到问题,即它们都不起作用。我已经检查过他们都使用最新版本的 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();
 });

我网站的网址是http://clients.bionic-comms.co.uk/fox/foxintouch-wp/issue/13/wesco-new-range/ 任何帮助将不胜感激。谢谢

4

2 回答 2

4

您的编码包括对两个版本的 jquery 库的引用。第一个 (jquery-1.3.2.min.js) 使用手风琴插件进行了扩展,但随后被第二个库 (jquery.js) 覆盖。

这破坏了您的$('#sidebar ul').accordion();代码,因为第二个 jquery 库不包含该accordion函数的定义(只有第一个 jquery 库使用手风琴插件进行了扩展)。

一旦你删除了第二个 jquery 库,thickbox 就会停止工作,因为thickbox 3.1 不支持 jQuery 1.3+,但这可以通过在thickbox.js 中更改一行来轻松解决:

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

TB_TempArray = $("a[rel="+imageGroup+"]").get();
于 2009-05-13T08:35:38.777 回答
1

我不确定你为什么在你的网站上使用 noConflict 函数——这是为了禁用 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。

于 2009-05-13T06:31:02.147 回答