jQuery MFX手风琴未在Chrome,IE或Safari中初始化(在Firefox中正常工作)

时间:2012-10-30 21:15:48

标签: jquery google-chrome joomla safari accordion

手风琴脚本在Firefox中运行良好,但显然是它工作的唯一浏览器。这是链接(向下滚动到Q& A):

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

我正在加载最新的jQuery& UI库,我在许多其他网站上运行此手风琴,没有任何错误。从来没有遇到过这个插件的问题。如初。

以下是Chrome中出现的错误:

未捕获的TypeError:无法使用'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>';  

}

?> 

编辑:

感谢George的帮助,能够解决问题。这是更新的工作代码:

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

          jQuery.noConflict(); 

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

      </script>";

1 个答案:

答案 0 :(得分:2)

当你在同一页面上使用jquery和mootools时,通常会发生这种错误(我可以看到你有)。他们都使用$符号作为库的捷径。我的建议是查看你的jquery代码并替换$ variable,看看是否有所作为

// 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);