Jquery - ошибка типа, не является функцией

0

Я работаю над виджетами, встроенными на веб-сайт клиентов, и загружает файл jquery. однако нам нужно определить, загружен ли jquery на странице клиентов, чтобы избежать конфликтов, а затем не загружать наш собственный jquery.

В качестве побочного элемента виджет работает во всех версиях jquery. Используемый код...

 if (typeof jQuery == 'undefined') {
 console.log("NOT LOADED");
 scripts.push("https://d33f10u0pfpplc.cloudfront.net/perun/v1/js/widget/betaV2/jquery-1.8.2-min.js");
 }

Это работает при тестировании на месте, однако, когда он был запущен на некоторых сайтах, мы получили...

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

кажется, что jquery на сайтах хоста, должно быть, не была полностью загружена, это моя первоначальная теория (может быть, и не так)

есть ли способ улучшить обнаружение jquery, используемое выше? или если вы знаете, почему он не работает, я рад узнать. благодаря

  • 0
    проверить это stackoverflow.com/questions/1828237/…
  • 0
    Могу ли я узнать, как вы включили свой файл JS? это из вашей локальной папки сценариев JS или из Google CDN или с сайта JQuery?
Показать ещё 1 комментарий
Теги:

4 ответа

2

Прежде всего, $tabs не является стандартной функцией jQuery. Если это часть плагина, вам нужно также убедиться, что он включен.

Также убедитесь, что jQuery не запускается в режиме noConflicts. В этом случае jQuery может быть определен, но не $.

1

Вы проверяете состояние загрузки браузера? Javascript обычно выполняется в то время, когда браузер разбирает его. JQuery - это более крупный файл, и иногда он будет выполнять первый код.

Чтобы решить эту проблему, убедитесь, что ваш собственный код выполняется после загрузки dom:

$(function() {
    // your code here
});

Альтернатива 2 - проверить, что

scripts.push()

точно делает. Он должен быть асинхронным, просто добавлять только запрос файла не гарантирует, что файл загружен и проанализирован. Возможно, это твоя проблема.

Использование jQuery в виджетах не является оптимальным. Можно ли записать его в native js?

0

Вероятно, это не поможет, но в примере на http://www.initializr.com/

jQuery проверен как

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.1.min.js"><\/script>')</script>
0

Проверьте версию jquery, и ваша версия не имеет функции jQuery $tabs.

Тогда только вы получили эту ошибку типа

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

В противном случае попробуйте новую версию файла jquery_ui.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню