Jquery Twitter引导更改粘贴偏移量

Jquery Twitter引导更改粘贴偏移量,jquery,twitter-bootstrap,Jquery,Twitter Bootstrap,我有一个网站,我想'子导航'。因此,当您滚动到section时,它的工具栏将粘贴在主工具栏下方。我有这个工作,但我不能改变初始化后的顶部偏移。文件说: 粘贴('刷新') 将“词缀”与添加或删除元素结合使用时 从DOM中,您需要调用刷新方法: 但当我尝试这个时,我得到: 未捕获的TypeError:对象#没有“刷新”方法 这是我的密码: $(function () { $('.sec-nav').addClass("affix-top"); var adjustNavs = fun

我有一个网站,我想'子导航'。因此,当您滚动到section时,它的工具栏将粘贴在主工具栏下方。我有这个工作,但我不能改变初始化后的顶部偏移。文件说:

粘贴('刷新')

将“词缀”与添加或删除元素结合使用时 从DOM中,您需要调用刷新方法:

但当我尝试这个时,我得到:

未捕获的TypeError:对象#没有“刷新”方法

这是我的密码:

$(function () {
    $('.sec-nav').addClass("affix-top");
    var adjustNavs = function (first) {
        $('.sec-nav').each(function (){
            var $p = $(this).closest('.sec');
            var $$ = $p.prevAll('.sec');
            console.log($$);
            var h = 0;
            $$.each(function () { h+=$(this).outerHeight();});
            console.log(h);

            if (first) {
                $(this).affix({offset: {top: h}});
            } else {
                $(this).data('affix', {b: {options: {offset:{top: h}}}});
                console.log(this);
                $(this).affix('refresh')
            }

        });
    }
    adjustNavs(true);
    $('.sec').bind('DOMSubtreeModified', function () {
        adjustNavs();
    });
});
我试过不同的方法

                $(this).data('affix', {b: {options: {offset:{top: h}}}});
包括:

                $(this).affix({offset: {top: h}});

我无法更改偏移量。如何更改粘贴插件的偏移量?谢谢。

我想出来了。我没有动态更新偏移量,而是将偏移量值更改为函数:

$(function () {
    $('.sec-nav').addClass("affix-top").each(function (){
        var $self = $(this);
        var offsetFn = function () {
            var $p = $self.closest('.sec');
            var $$ = $p.prevAll('.sec');
            var h = 0;
            $$.each(function () { h+=$(this).outerHeight();});
            return h;
        }
        $self.affix({offset: {top: offsetFn}});
    });
});

现在,当一个部分由于dom操作或窗口大小调整而改变时,偏移量会由于函数返回值的改变而自动改变

我稍微简化了Fatmuemoo的回答,以了解更基本的情况: 我的主页的导航栏(默认引导栏)位于一个id为bg的大背景滑块下方。滑块的高度随3个css断点而变化。我们只需将#杆头的偏移量设置为滑块的高度。轻松点

    $('header#masthead').affix({ //sticky header at bottom of bg
        offset: {
          top: function(){return $("#bg").outerHeight();}
        }
    });
那么:

            $(window).off('.affix');
            $("#ID_NAME")
                .removeClass("affix affix-top affix-bottom")
                .removeData("bs.affix");
            $('#ID_NAME').affix({ 
              offset: {
                top: OTHER_VALUE
              }
            });

你们能粘贴一块HTML吗?否则很难说。。。如果您尝试替换
$('.sec nav').addClass(“粘贴顶部”)带有
$('.sec nav').affix()这有帮助吗?或者您是否已经在
.sec nav
上获得了
data spy=“affix”
属性?您能否提供所使用的html或工作示例?我正在尝试将其应用到现有代码中,但我不知道.sec是什么。正在尝试调整窗口大小
$('.myMeny')。粘贴({offset:{top:myOffet}})但不起作用,该值没有改变解决方案。只是工作(通过一些我不懂的巫术)@davecave,要调整解决方案,请删除offsetFn中除“var h=”和“return h;”之外的所有内容。然后使用你自己的元素和计算来确定“h”的值。像一个魔咒一样工作!我试过调整窗口大小,但不起作用。谢天谢地,我找到了这个答案。谢谢,简单而高效,效果很好,并且很容易创建您所需的所有元素的总和。通常,如果答案包括对代码意图的解释,以及在不引入其他元素的情况下解决问题的原因,那么答案会更有帮助。