Javascript Affix не является функцией

Я весь день работал в песочнице Bootply и столкнулся с проблемой при переносе идентичного кода на рабочий сервер.

Песочница здесь, и аффикс работает нормально: http://www.bootply.com/wu2vXxkt5o#

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

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

http://nathan97.com — это активный сайт.

Рассматриваемый код:

/* activate sidebar */
$('#sidebar').affix({
  offset: {
    top: 235
  }
});

person Devanuze    schedule 14.09.2015    source источник
comment
Сценарий вашего кода, который вызывает affix, находится над тегом script для bootstrap.js. Вы пытаетесь вызвать его до того, как он существует. Та же проблема со скриптом jQuery. Ваш код всегда должен быть включен после зависимостей.   -  person m59    schedule 15.09.2015
comment
обновите bootstrap.js до версии 3.0, и он работает https://stackoverflow.com/a/44344544/1673050   -  person Serip88    schedule 03.06.2017


Ответы (1)


Сначала переместите cover.js после affix.js, иначе функция аффикса не будет найдена.

Во-вторых, скрипты в разделе head вызываются до того, как будут отрисованы элементы body, поэтому $('#sidebar') не будет найден. Оберните свои функции в $(document).ready, чтобы вызвать код после завершения рендеринга тела.

правильный порядок

<script type="jquery.js"></script>
<script src="cover.js"></script>
<script src="affix.js"></script>

обложка.js

$(document).ready(function() {

    $('#sidebar').affix({
      offset: {
        top: 235
      }
    });

   // ...

});
person Miguel Mota    schedule 15.09.2015
comment
Я внес исправления, которые вы предложили, но, похоже, они не работают. Готовый документ по-прежнему делает аффикс с функцией несуществующим, я также загружаю все зависимости до аффикса. Моя исправленная версия есть на сайте, но не работает. Если бы вы могли сэкономить время для некоторой помощи, это было бы признательно. Спасибо - person Devanuze; 15.09.2015