0

我有这个 jquery 代码:

$(function(){

    var $win = $(window);
    var $nav = $('.subnav');
    var navTop = $('.subnav').length && $('.subnav').offset().top - 38;
    var isFixed = 0;

    processScroll();

    $win.on('scroll', processScroll);

    function processScroll() {
        console.log('test');
        var i, scrollTop = $win.scrollTop();
        if (scrollTop >= navTop && !isFixed) {
            isFixed = 1;
            $nav.addClass('subnav-fixed');
        } else if (scrollTop <= navTop && isFixed) {
            isFixed = 0;
            $nav.removeClass('subnav-fixed');
        }
    };
})

例如,如果我有这个网址:

http://mydomain.com/postshttp://mydomain.comhttp://mydomain.com/post?utf8=✓&amp;search=

该代码确实可以正常工作,但是如果我有例如:

http://mydomain.com/post?utf8=✓&amp;search=port或者http://mydomain.com/post?utf8=✓&amp;search=word

代码不能正常工作...

为什么如果我通过搜索引擎传递 url 的参数,代码不能正常工作?

非常感谢!

已编辑

我正在使用这个太阳黑子 solr 作为我的搜索引擎

http://sunspot.github.com/

4

1 回答 1

0

我在这个问题中找到了解决方法:

复制 Bootstraps 主导航和子导航

这是代码:

$(document).scroll(function(){
    // If has not activated (has no attribute "data-top"
    if (!$('.subnav').attr('data-top')) {
        // If already fixed, then do nothing
        if ($('.subnav').hasClass('subnav-fixed')) return;
        // Remember top position
        var offset = $('.subnav').offset()
        $('.subnav').attr('data-top', offset.top);
    }

    if ($('.subnav').attr('data-top') - $('.subnav').outerHeight() <= $(this).scrollTop())
        $('.subnav').addClass('subnav-fixed');
    else
        $('.subnav').removeClass('subnav-fixed');
});

谢谢

于 2012-05-20T13:07:57.073 回答