0

我已经编写了一些 jQuery,一旦用户在页面上滚动超出它,它就会修复一个子菜单。jQuery 更改子菜单上的类以使其固定。这一切都很好,除了一种情况,那就是如果我在 Firefox 中刷新页面 - 我在任何其他浏览器中都没有遇到这个问题。

$(function(){
    var menu = $('#submenu_wrapper'),
        pos = menu.offset();
        $(window).scroll(function(){
            if($(this).scrollTop() >= pos.top-57 && menu.hasClass('')){
                menu.addClass('fixed');
                $('.content_push').css({"height":"109px"});
            } else if($(this).scrollTop() <= pos.top-57 && menu.hasClass('fixed')){
                menu.removeClass('fixed');
                $('.content_push').css({"height":"57px"});
            }
        });
});

我是否可以进行一些更改,以便在刷新页面时 Firefox 将保留更改后的类状态?我见过类似的固定菜单行为设法做到这一点,但似乎无法弄清楚如何。例如, Twitter Bootstrap 站点,如果您访问 Javascript 部分,就会执行此操作。

干杯。

4

3 回答 3

1

不,重新加载后,脚本所做的任何修改都消失了。

于 2012-05-25T14:06:56.380 回答
0

我认为盗贼大师是正确的。令我惊讶的是,其他浏览器的行为不同。

作为一种解决方法,在显示子菜单时添加一个 URL 片段(使用 #),并在页面加载时检查该片段,如果存在,则运行显示子菜单的脚本。

于 2012-05-25T14:10:40.420 回答
0

唯一想到的是将值存储在 cookie 中,并根据刷新时此 cookie 的值,将适当的类应用于元素。

于 2012-05-25T14:10:55.460 回答