Jquery Scroll() 需要 2 个参数
Posted
技术标签:
【中文标题】Jquery Scroll() 需要 2 个参数【英文标题】:Jquery Scroll() requires 2 Arguments 【发布时间】:2014-06-13 07:20:14 【问题描述】:当用户向下滚动页面时,我试图从菜单栏中删除一个类。我阅读了以下主题和文档以了解有关 jquery scroll() 的想法:
1) https://***.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
。也许就是这样。我会再试一次...
【参考方案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/
【讨论】:
以上是关于Jquery Scroll() 需要 2 个参数的主要内容,如果未能解决你的问题,请参考以下文章