【问题标题】:Jquery accordion and thickbox clashJquery手风琴和thickbox冲突
【发布时间】:2009-05-13 06:09:46
【问题描述】:

我在同一页面上使用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/ 任何帮助将非常感激。谢谢

【问题讨论】:

    标签: jquery accordion thickbox


    【解决方案1】:

    您的编码包含对两个版本的 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();
    

    【讨论】:

      【解决方案2】:

      我不确定你为什么在你的网站上使用 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 本身.

      【讨论】:

      • 好吧,这解决了thickbox 问题,但手风琴仍然不能很好地演奏。它已永久扩展。
      • 使用萤火虫我也得到一个错误说“$("#sidebar ul").accordion is not a function”。
      • 我认为问题在于您有两个 jquery 脚本。尝试删除“jquery.js”脚本。
      • 你能举一个例子来说明你的网站上使用了thickbox吗?我找不到。
      • Thickbox 不适用于 jQuery 1.3+,但您可以通过更改thickbox.js 中的一行来轻松解决这个问题:codylindley.com/thickboxforum/…
      猜你喜欢
      • 2012-08-28
      • 2023-01-11
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多