jQuery UI: TypeError: $(...).accordion不是一个函数

20

由于某些原因,jQuery UI手风琴无法正常工作。 我一直收到这个错误:

TypeError:$(...).accordion不是函数

我做错了什么? 根据此站点上有关类似主题的其他答案,我认为它与所包含的文件有关。

我的头文件包括:

<!-- Mobile Specific Metas -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">  

<!-- CSS -->
<link rel="stylesheet" href="<?php echo base_url(); ?>css/base_con.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>css/skeleton.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>css/layout.css">

<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
<![endif]-->

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<!-- Favicons -->
<link rel="shortcut icon" href="<?php echo base_url(); ?>images/favicon.ico">
<link rel="apple-touch-icon" href="<?php echo base_url(); ?>images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
<link rel="stylesheet" href="<?php echo base_url(); ?>css/custom-theme/jquery-ui-1.10.0.custom.css" type="text/css" />

<!-- Scripts -->
<script src="<?php echo base_url(); ?>js/jquery-1.9.0.js"></script>
<script src="<?php echo base_url(); ?>js/jquery-ui-1.10.0.custom.js"></script>
<script src="<?php echo base_url(); ?>js/responsiveslides.min.js" type="text/javascript">

2
您自定义的 jQueryUI 是否实际包含手风琴插件? - Richard Dalton
确保您的jQuery核心文件和jQuery UI文件路径正确。使用Firebug或其他控制台工具查看以确保它们正在加载。 - Jay Blanchard
谢谢Richard,已经修复了 :) - chuckfinley
5个回答

37

这个问题可能由以下几种情况引起:

  • 您没有包含jQuery UI库。
  • 您在引入jQuery库之前引入了jQuery UI库。
  • jQuery UI和jQuery库的路径可能不正确。
  • 您正在使用一个没有手风琴功能的自定义jQuery UI库。

既然前两种情况不适用于您,我建议仔细检查路径,并使用完整的jQuery UI库而不是自定义库:

<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>

谢谢!我没有意识到 jQuery UI 库必须在 jQuery 库之后被包含。 - Geremia

9

使用两个jquery.js文件可能会导致冲突并引发错误。请避免导入两个以上的jquery.js文件。


谢谢您添加这个 - 这是我的问题。愚蠢的错误 - 但在您指出之前,我一直在寻找错误的东西。 - Sam

1

在您的最后几行代码中,按照以下顺序包含脚本:

无需包含以下内容,因为上面的脚本已经处理了。


0
我在一个WordPress网站上遇到了同样的问题。我将它添加到了头部。 使用<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助他人理解如何解决所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

0

JavaScript文件的顺序很重要!

/external/jquery/jquery.js should be listed above jquery-ui.js!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接