Jquery 仅在IE8中调用了两次slideToggle

Jquery 仅在IE8中调用了两次slideToggle,jquery,Jquery,我有一个页脚,当到达页面底部时,它会向上/向下滑动,问题是出于某种原因,它在IE8中被调用了两次 我可以强制每页滚动调用一次吗 $(window).scroll(function() { if($(window).scrollTop() + $(window).height() == $(document).height()) { // $('.footer .open').click(); $('#page-footer').slide

我有一个页脚,当到达页面底部时,它会向上/向下滑动,问题是出于某种原因,它在IE8中被调用了两次

我可以强制每页滚动调用一次吗

$(window).scroll(function() {
       if($(window).scrollTop() + $(window).height() == $(document).height()) {
           // $('.footer .open').click();
           $('#page-footer').slideToggle();
           console.log('log');
       }
});

试试这个,我希望对你有帮助

$(window).unbind('scroll').scroll(function() {
       if($(window).scrollTop() + $(window).height() == $(document).height()) {
           // $('.footer .open').click();
           $('#page-footer').slideToggle();
           console.log('log');
       }
});

我想这是因为当你滑动切换时,由于动画的缘故,窗口会再次滚动。你可以在页脚上添加一个类,当你滑动时,你可以检查它是否有该类,因为它已经滑动切换了

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() == $(document).height() && !$('#page-footer').hasClass('do-once')) {
       // $('.footer .open').click();
       $('#page-footer').addClass('do-once').slideToggle();
       console.log('log');
   }
});

很难在JSFIDLE中模拟屏幕滚动(在一个框架中显示),但这应该说明我的意思:

JSFiddle: 忽略模拟文档和窗口的技巧,您只需要根据屏幕边缘的接近程度调用
slideUp
slideDown
。再次冗余地调用它们所做的事情很少,所以可以在每个滚动上调用它们

$('#content').scroll(function () {
    if ($(window).scrollTop() + $(window).height() > $(document).height()) {
        $('#page-footer').slideDown();
        console.log('log');
    }
    else
    {
        $('#page-footer').slideUp();
    }
});

注意:
可能需要
=
,但我无法在JSFIDLE中正确测试它,因为它需要是完整的浏览器。对于JSFIDLE,我对它进行了一些攻击:)

滚动条触发频率太高,我不会使用slideToggle,因为会有浏览器触发多次。我会根据滚动值显式使用slideUp或slideDown。您可以将其显示为示例吗?
if(($(窗口).scrollTop()+$(窗口).height())>=$(文档).height()){
试试这个。到目前为止,我发现你已经用不同的措辞问了4次几乎相同的问题,所以我可能会放弃帮助你。我强烈建议你坚持用一个问题解决一个问题,如果情况发生变化,再重新编写。因为你仍然没有提供HTML和样式,你只会得到4次相同的回答很多人投了反对票。请不要浪费别人的时间:)总是说你改变了什么,以及为什么。谢谢,但它仍会触发两次。你是否检查了控制台错误,并放入调试器并检查它是否触发了两次。?@BlekStenaThe unbind()方法从所选元素中删除事件处理程序。我在我的代码中检查了它在ie8中的工作情况。我认为问题应该是其他的,这会对slidetoggle造成影响。我尝试过,我让它触发单击页脚,如果页脚打开,则该页脚具有活动类,但在ie8中,该类根本不会被分配。此外,如果我成功滚动p在一个连续的动作中老化,然后正常工作。IE8中的usind addClass似乎不起作用,我也尝试了类似的方法。您使用的是什么版本的jquery?2+不支持旧版本的IE。但我不应该将$(window)放入其中。滚动(function(){?检查小提琴…它在里面…我只是显示了更改的部分!更新了以使其更明显:)无论如何,你现在应该知道了…在这种情况下切换是不好的(当你不能保证调用时)。