Jquery addClass和removeClass不在IE中工作
我有这个代码,它检查顶部偏移量,并相应地更改菜单的类。 除了在IE7和IE8中没有更改类之外,它工作得非常好。 代码如下: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');} });
$(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%