2013-02-21 3 views
1

Я создаю сайт на основе начальной загрузки, на данный момент у меня есть проблема. Если я позвоню из data-attributes:Bootstrap ScrollSpy из javascript call not working

<body data-target=".navbar" data-spy="scroll" data-offset="200"> 

Scrollspy работает.

Но если я использую Javascript

$('.navbar').scrollspy({offset:200}); 

это не работает!

я уже пытаюсь поставить атрибуты на лету:

$("body").data("target", ".navbar"); 
$("body").data("spy", "scroll"); 
$("body").data("offset", "200"); 

нет результата до сих пор.

Я думаю, что есть что-то не хватает при вызове javascript. если $ ('. navbar') является целью, где я могу установить объект-шпион (тело)?

+0

Вы звоните '.scrollspy' на документ готов? – mkoryak

ответ

0

Существуют различные способы сделать это, увидеть, если это поможет вам: http://jsfiddle.net/panchroma/Tgghc/

Использование атрибутов данных важные биты включая детали данных шпиона в DIV вы хотите, чтобы шпионить:

<div id="nav-wrapper" data-spy="affix" data-offset-top="200"> 
..... 

Затем в CSS определить, что вы хотите случиться это Див, когда он прикреплен, например:

#nav-wrapper.affix { 
top: 0; 
width: 100% 
} 

Поскольку проставленный DIV будет удален из нет rmal flow, иногда вам нужно немного поиграть, чтобы поведение аффикса не приводило к скачку основного контента.

Удачи вам!

0

При вызове scrollspy с помощью JavaScript укажите тег body (или другой элемент с полосой прокрутки) и перейдите в целевую навигацию в качестве опции.

$('body').scrollspy({ target: '.navbar' }); 

Я не знаю, почему документация самозагрузки говорит $ ('# Navbar'). Scrollspy(). Это очень вводит в заблуждение.