web-dev-qa-db-ja.com

$(...)。tabsは関数ではありません

このコードはサイトの2ページにありますが、1ページでは機能しません。 Firebugは「$(...)。tabsは関数ではない」と表示します。なぜわからないのですか、誰が間違っているのか教えてもらえますか?

これは動作しています: 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();
});
13
Alex Bosnea

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(存在する)

しかし、2番目のパスでは

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

15
Matei Mihai

私の場合:

私が使っていた

jquery-ui-1.10.3.minimal.min.js

の代わりに

jquery-ui-1.10.3.custom.min.js

最小バージョンにはui.tabs.jsが含まれていないため、ui.tabs関数はありません。これが他の誰かに役立つことを願っています

4
parfaire

問題は、jQuery UI jsおよびcssがロードされないことです。

あなたのパスを変更してみてください<script>タグは、上のディレクトリのいずれかに../javascriptまたはWebサイトのルート/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" />
4
PassKit

これを試して:

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

@Scripts.Render("~/bundles/jqueryui")をlayout.cshtmlの_<body></body>_に入れます

1
Hao Shi

最初のデモがロードされます:

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

2番目のデモはロードを試みます:

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

最後のものは404になります。後のパスを修正する必要があります。おそらく、現在の1つ上のディレクトリでjQuery UIを見つけるように指示する必要があります:../jquery-ui-1.9.2.custom.min.js

1
Sampson

エラーUncaught TypeError: $(...).tabs is not a functionは、管理領域のDjangoプロジェクトで、次の設定でDjango-tabbed-adminを使用している場合にも生成される場合があります。

  • ジャンゴ= 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 -->

これを整理するには、上記の(Django.jQuery)の代わりにIIFEに渡されるものにする必要があります。

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

私は 報告済み プロジェクトでこの問題を作成し、 [〜#〜] pr [〜#〜] を修正して作成しました。それが承認されるのを待っているので、それまでは、私の簡単な修正に従ってソートすることができます。

これが誰かに役立つことを願っています。

0
Rui Carvalho