Подтвердить что ты не робот

$ (...). tabs не является функцией

У меня этот код на двух страницах на моем сайте, но на одной странице функция не работает. 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();
});
4b9b3361

Ответ 1

У вас есть относительные пути к файлам javascript:

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

измените их на абсолютные пути, потому что вы используете mod_rewrite module

/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, которые не существуют

Ответ 2

Проблема заключается в том, что 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" />

Ответ 3

В моем случае:

Я использовал

jquery-ui-1.10.3.minimal.min.js

вместо

jquery-ui-1.10.3.custom.min.js

минимальная версия не включает ui.tabs.js, следовательно, нет функции ui.tabs. Надеюсь, это поможет кому-то еще

Ответ 4

Ваша первая демонстрационная загрузка:

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 в одном каталоге выше текущего: ../jquery-ui-1.9.2.custom.min.js.

Ответ 5

Попробуйте следующее:

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

Поместите @Scripts.Render("~/bundles/jqueryui") в <body></body> вашего layout.cshtml

Ответ 6

Это также может произойти, если вы используете Django Admin при следующих обстоятельствах:

Ошибка "Uncaught TypeError: $ (...). Tabs не является функцией" выдается при использовании django-tabbed-admin при следующей настройке:

  • Джанго = 1.10.5
  • Джанго вкладками-админ = 1.0.4
  • DEFAULT_JQUERY_UI_JS = 'tabbed_admin/js/jquery-ui-1.11.4.min.js'

Проблема в том, что код в 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 -->

Я сообщил об этой проблеме в проекте и создал PR с исправлением. В ожидании его утверждения, а пока вы можете отсортировать его, следуя моему простому исправлению.

Я надеюсь, что это помогает кому-то там.

Ответ 7

У меня была та же проблема, я понял, что у меня есть импорт jquery и bootstrap css, которые вступают в конфликт друг с другом. Взгляните на те, которые вы импортировали, и уменьшите их импорт до минимума, чтобы увидеть, что является конфликтом.

Вот пример того, как его реализовать, я взял этот пример и работал, затем адаптировался к своему приложению:

для jquery 1.9 (нажмите источник просмотра, чтобы увидеть код) http://jqueryui.com/tabs/

для jquery 1.8 (проверьте пример в конце страницы) http://api.jqueryui.com/1.8/tabs/

Надеюсь, что это поможет!