1

手风琴脚本在 Firefox 中运行良好,但显然是唯一可以运行的浏览器。这是链接(向下滚动到问答):

https://www.in-acuity.com/our-experts/experts_details/20-Frank%20-Koch

我正在加载最新的 jQuery 和 UI 库,并且这个手风琴在许多其他网站上运行良好,没有错误。这个插件从来没有问题。曾经。

这是 Chrome 中弹出的错误:

未捕获的类型错误:无法使用“in”运算符在未定义中搜索“height”

我非常普遍地理解这意味着什么,但为什么它会在这里发生,而不是在这个脚本运行良好的大量其他站点中发生。调试了好几个小时,准备把海豹宝宝扔出窗外。

提前感谢您提供的任何帮助。

这是代码:

<?php
$db =& JFactory::getDBO();

$query = "[OMITTED]";
$db->setQuery( $query );
$questions = $db->loadObjectList();
$count = count($db->loadObjectList());

if($count) {

    echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js" type="text/javascript"></script>
    <script src="[OMITTED]" type="text/javascript"></script>';  

    echo "<script type='text/javascript'>
                $(document).ready(function() {
                    $('.mfx_accordion').mfxAccordion({
                        slideSpeed: 300,
                        singleOption: true
                    });
                });
            </script>";

    echo '<div class="mfx_accordion">';

    foreach($questions as $question) {

        echo '<div class="section">
                 <h2 class="trigger settings"><span class="icon"></span>'.$question->ques.'</h2>
                 <div class="content">
                     <p>'.$question->anws.'</p>
                 </div>
              </div>';      



    }

    echo '</div>';  

}

?> 

编辑:

多亏乔治的帮助,才得以修好。这是更新的工作代码:

echo "<script type='text/javascript'>

          jQuery.noConflict(); 

          jQuery(document).ready(function($) {
              $('.mfx_accordion').mfxAccordion({
                  slideSpeed: 300,
                  singleOption: true
              });
          })(jQuery);

      </script>";
4

1 回答 1

2

当您在同一页面上使用 jquery 和 mootools 时,通常会发生此类错误(正如我所看到的那样)。它们都使用 $ 符号作为库的快捷方式。我的建议是查看您的 jquery 代码并替换 $ 变量,看看是否有所作为

// Disable the $ global alias completely
jQuery.noConflict();

// For jQuery scripts
(function($){

// set a local $ variable only available in this block as an alias to jQuery
... here is your jQuery specific code ...

})(jQuery);

为了安全起见,我也会对你的 mootools 脚本做同样的事情。因为这可能是 jQuery 错误的来源:

(function($){

// set a local $ variable only available in this block as an alias 
// to Mootools document.id
... here is your Mootools specific code ...

})(document.id);
于 2012-10-31T09:37:51.823 回答