Jquery Scroll()需要2个参数

时间:2014-06-13 07:20:15

标签: javascript jquery scroll menubar

我想在用户向下滚动页面时从菜单栏中删除一个类。我阅读了以下主题和doc,以了解jquery scroll():

1)https://stackoverflow.com/a/16391580/1050957

2)http://api.jquery.com/scroll/

这是我的代码:

var jquery = jQuery.noConflict();

jquery(document).ready(function(){      
    $(window).scroll(function () {          
        if (document.body.scrollTop > 100) 
                $('#menuBar').removeClass( "nav-menu" );    
        else
                // something something              
    });        
});

上面的代码是来自另一个主题的SO答案的摘录(上面给出的链接)。但是当我添加该代码时,我看到Not enough arguments to Window.scroll.的{​​{1}}错误。我不知道为什么它期望2个参数,因为我在scroll()上阅读的文档使用没有参数。我做错了什么吗?或者在更高版本的Jquery中有什么变化?

我正在使用jquery v1.11.0

2 个答案:

答案 0 :(得分:2)

使用完整的jquery代码。工作示例:

#menuBar { background: yellow; width: 50px; height: 800px; }
#menuBar.nav-menu { background: red; }

<div id="menuBar" class="nav-menu"></div>
<div style="margin-bottom: 999em;"></div>

$(document).ready(function(){

    $(window).on('scroll', function () {  
        var $body = $('body');
        var $target = $('#menuBar');
        if ($body.scrollTop() > 100 && $target.hasClass('nav-menu')){
                $target.removeClass("nav-menu");    
        }
        else if( $body.scrollTop() <= 100 && !$target.hasClass('nav-menu') ){ 
            $target.addClass('nav-menu');
        }

    });

});

确保检查是否已添加该类以防止不必要的内容。

检查jsfiddle

答案 1 :(得分:1)

如果需要,您可以在滚动功能中添加一个空参数:

$(document).ready(function(){      
    $(window).scroll([], function () {          
        ...
    });        
});

看看这个:

http://colorlib.com/wp/forums/topic/fix-a-bug-in-latest-version-window-scroll/