Jquery addClass和removeClass不在IE中工作

Jquery addClass和removeClass不在IE中工作,jquery,internet-explorer-8,internet-explorer-7,addclass,removeclass,Jquery,Internet Explorer 8,Internet Explorer 7,Addclass,Removeclass,我有这个代码,它检查顶部偏移量,并相应地更改菜单的类。 除了在IE7和IE8中没有更改类之外,它工作得非常好。 代码如下: $(document).scroll(function(){ if($(document).scrollTop() >= 800) { $('#menu').removeClass('default').addClass('fixed'); } else{$('#menu').removeClass('fixed').addClass('default');} });

我有这个代码,它检查顶部偏移量,并相应地更改菜单的类。 除了在IE7和IE8中没有更改类之外,它工作得非常好。 代码如下:

$(document).scroll(function(){
if($(document).scrollTop() >= 800) {
$('#menu').removeClass('default').addClass('fixed');
}
else{$('#menu').removeClass('fixed').addClass('default');}
});
如果有人想看一看,链接是

p、 不要问我为什么它在IE7中会崩溃,我昨天才开始研究:)

在IE中不能正常工作的
scrollTop()
问题


请参见

尝试使用,
窗口
而不是
文档

$(window).scroll(function(){  } );
但保留
$(文档)。滚动顶部(函数()

正如你所知,
.scrollTop
在IE(IE8)中也能工作

更新

这是我目前在我的一个网站上使用的确切代码

$(window).scroll(function(){
    if( $(document).scrollTop() >= 800 ) ){
        //my code
    }else{
        //my code
    }

});

不要问我为什么它会在IE7中崩溃
-我知道。因为IE只是…我知道是否正在调用
.scroll()
事件?几乎不可能
addClass()
removeClass()
不工作(因为它们所做的只是读取和设置
.className
)因此,更可能的情况是某个事件不起作用,
scrollTop()
没有按照您的预期进行操作,或者选择器没有按照您的预期进行操作。您可能需要准确地缩小哪一行代码不起作用的范围。也可能是您应该在文档对象以外的其他对象上执行
.scrollTop()
(可能是
document.body
)。仅仅链接到
scrollTop()
文档是不够的……请解释一下这个答案。
scrollTop
在IE8中可以工作,所以我假设9,对7RTFM不太确定,伙计们;)如果你不懒惰并且完全阅读了文档,你会看到非常有用的注释。例如:也许但我确信如果@suludi能够在他们的代码中走到这一步,那么我非常确信他们可以查找JQuery文档:)但是这个问题的作者在想:“addClass和removeClass在IE中不起作用”:(谢谢,我会试试。你可以查看我提供的链接,除了IE7和IE8之外,所有浏览器都能正常工作。很好,它能正常工作。你能解释一下为什么IE8能正常工作,而文档不能正常工作吗?我不是100%,但我假设IE不能处理文档上的
滚动
事件。但是当
窗口覆盖所有内容时,它会我总是被叫。再说一次,我不是100%