2015-09-14 4 views
3

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

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

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

TypeError: $(...).affix is not a function

http://nathan97.com является живого сайта.

Код в вопросе:

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

Сценарий вашего кода, который вызывает 'affix' выше тега сценария для' bootstrap.js'. Вы пытаетесь вызвать его до его существования. Такая же проблема с сценарием jQuery. Ваш код всегда должен быть включен после зависимостей. – m59

+0

обновление bootstrap.js до версии 3.0 и оно работает [https://stackoverflow.com/a/44344544/1673050](https://stackoverflow.com/a/44344544/1673050) – Serip88

ответ

3

Первый ход cover.jsпослеaffix.js, в противном случае наклеить функции не будут найдены.

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

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

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

cover.js

$(document).ready(function() { 

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

    // ... 

}); 
+0

Я внесла исправления, которые вы предложили но он не работает. Готовый документ по-прежнему делает аффикс с функцией не существует, я также загружаю все зависимости до аффикса. Моя исправленная версия находится на веб-сайте, но все еще не работает. Если бы вы могли сэкономить время на помощь, это было бы воспринято. благодаря – Devanuze