$(...)。制表符不是函数

时间:2013-01-12 14:08:58

标签: jquery-ui-tabs

我在我的网站上的两个页面上有这个代码,但在一个页面上该功能不起作用。 Firebug向我展示“$(...)。制表符不是函数”。我不明白为什么,谁能告诉我什么是错的?

这是有效的: http://www.invat-online.net/variante-rezolvate

这不起作用: http://www.invat-online.net/variante-explicate-limba-romana/varianta-01

以下是代码:

<div id="tabss">
    <ul>
        <li><a href="#SubiectI">Subiect I</a></li>
        <li><a href="#SubiectII">Subiect II</a></li>
        <li><a href="#SubiectIII">Subiect III</a></li>
    </ul>
    <div id="SubiectI">content here</div>
    <div id="SubiectII">content here</div>
    <div id="SubiectIII">content here</div>
</div>
$(document).ready(function() {
   $("#tabss").tabs();
});

8 个答案:

答案 0 :(得分:15)

您有javascript文件的相对路径:

javascript/jquery-ui-1.9.2.custom.min.js

将它们更改为绝对路径,因为您正在使用mod_rewrite模块

/javascript/jquery-ui-1.9.2.custom.min.js

在第一个链接中,服务器正在查找目录

http://www.invat-online.net/javascript/my_js_file.js(存在)

但在第二个路径中

http://www.invat-online.net/variante-explicate-limba-romana/javascript/my_js_file.js不存在

答案 1 :(得分:4)

问题是jQuery UI js和css没有加载。

尝试将<script>标记中的路径更改为../javascript上方的目录或网站/javascript

<script src="/javascript/head.min.js"></script>
<script src="/javascript/jquery-ui-1.9.2.custom.min.js"></script>
<link href="/stylesheets/smoothness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" />

答案 2 :(得分:4)

就我而言:

我正在使用

jquery-ui-1.10.3.minimal.min.js

而不是

jquery-ui-1.10.3.custom.min.js

最小版本不包含ui.tabs.js,因此没有ui.tabs函数。希望这有助于其他人

答案 3 :(得分:1)

您的第一个演示加载:

http://www.invat-online.net/javascript/jquery-ui-1.9.2.custom.min.js

您的第二个演示尝试加载:

http://www.invat-online.net/variante-explicate-limba-romana/javascript/jquery-ui-1.9.2.custom.min.js

最后一个导致404.你应该更正后面的路径,或者指示它在当前的../jquery-ui-1.9.2.custom.min.js之上的一个目录中找到jQuery UI。

答案 4 :(得分:1)

试试这个:

@section scripts{
$(document).ready(function() {
    $("#tabss").tabs();
});
}

@Scripts.Render("~/bundles/jqueryui")放入layout.cshtml的<body></body>

答案 5 :(得分:0)

在Admin区域的Django项目中,并在以下设置下使用django-tabbed-admin时,也会产生错误Uncaught TypeError: $(...).tabs is not a function

  • Django = 1.10.5
  • django-tabbed-admin = 1.0.4
  • DEFAULT_JQUERY_UI_JS ='tabbed_admin / js / jquery-ui-1.11.4.min.js'

问题是该Django lib的jquery-ui-1.11.4.min.js中的代码如下:

    /*! jQuery UI - v1.11.4 - 2015-07-27
    (...)*/
    jQuery = jQuery || django.jQuery.noConflict(false);

,django-tabbed-admin上的代码以这种方式使用它(change_form.html):

    <script type="text/javascript">
        (function($) {
            $(window).scrollTop()
            $('#tabs').tabs({
                {% if add %}
                // when adding, don't select a tab by default, we'll do it ourselves
                // by finding the first available tab.
                selected: -1
                {% endif %}
            });
        (....)
        })(django.jQuery);
    </script>
    <!-- end admin_tabs stuff -->

要对此进行解决,应该是将其传递给IIFE而不是上面的(django.jQuery):

<script type="text/javascript">
        (function($) {
            (....)
        })((typeof window.jQuery == 'undefined' && typeof window.django != 'undefined')
  ? django.jQuery
  : jQuery)
    </script>
    <!-- end admin_tabs stuff -->

我在项目中reported遇到了这个问题,并创建了一个PR及其修复程序。等待批准,因此与此同时,您可以按照我的简单修正对其进行排序。

我希望这可以帮助某个人。

答案 6 :(得分:0)

检查您的页面,您可能已经加载了多个版本的jQuery

答案 7 :(得分:-1)

我遇到了同样的问题,我意识到我有jquery和bootstrap css导入相互冲突。看看你导入的那些,并将这些导入减少到最小,看看哪个是冲突。

这里有一个如何实现它的例子,我拿了那个例子并且工作了,然后我适应了我的应用程序:

for jquery 1.9(点击查看源查看代码) http://jqueryui.com/tabs/

for jquery 1.8(查看页面末尾的示例) http://api.jqueryui.com/1.8/tabs/

希望它有所帮助!