【问题标题】:Jquery Scroll() requires 2 ArgumentsJquery Scroll() 需要 2 个参数
【发布时间】:2014-06-13 07:20:14
【问题描述】:

当用户向下滚动页面时,我试图从菜单栏中删除一个类。我阅读了以下主题和文档以了解有关 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. 错误 $(window).scroll(function ()。我不知道为什么它期望 2 个参数,因为我在 scroll() 上阅读的文档使用没有参数。我做错了什么吗?还是 Jquery 的更高版本发生了一些变化?

我正在使用 jquery v1.11.0

【问题讨论】:

  • 等等...我注意到我忘记将 $ 更改为 jquery。也许就是这样。我会再试一次...

标签: javascript jquery scroll menubar


【解决方案1】:

使用完整的 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

【讨论】:

  • 喜欢你的工作示例和首先检查类的想法。我要试试这个。谢谢@kmsdev
【解决方案2】:

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

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

看看这个:

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

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2019-02-04
    • 2012-03-04
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多