Я использую Bootstrap 3.2.0. Я пытаюсь использовать две функции javascript для начальной загрузки: Scrollspy и Affix. Цель состоит в том, чтобы сделать scrollspy на стороне, которая будет прокручиваться вместе с остальной частью страницы, используя аффикс. DemoJavascript будет работать только после обновления страницы
Ниже представлен мой файл javascript, включенный в состав head
по конвейеру Rails.
$(document).ready(function() {
// Use affix plugin
$("#sidebar").affix({
offset: { top: 280 }
});
// Use Scrollspy
$('body').scrollspy({ target: '#sidebar', offset: 200 });
}
scrollspy работает плавно, но наклеить плагин не делает, если я не обновить страницу после начальной загрузки. Используя инструменты разработчика в хроме, я заметил, что javascript не добавляет affix-top
в sidebar
, загружает первую страницу времени.
Когда я положил javascript плагина аффикса прямо в тело, он работает без обновления. Но я не хочу использовать встроенный javascript. И мне действительно любопытно, почему это странное поведение происходит.
Я использую Rails 4.1.5.
Спасибо, я сделал его работу, окружив весь код вокруг '$ (документ) .ready (функция() {}) и' $ (окно) .bind ('page: change', function() {}) 'Но ваше решение намного проще. –
Мне просто хотелось обернуть голову вокруг ситуации. Мое понимание проблемы заключается в том, что я добавил новые элементы DOM после того, как Turbolinks загрузил JS-файл, и JS-файл не может привязываться к новым элементам, если я не обновляю страницу. Это верно? –