手风琴脚本在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>";
答案 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);