1

我有這個代碼檢查頂部偏移量並相應地更改菜單的類。 它完美的工作,除了IE7和IE8,其中類沒有改變。 這是代碼:addClass和removeClass在IE中不工作

$(document).scroll(function(){ 
if($(document).scrollTop() >= 800) { 
$('#menu').removeClass('default').addClass('fixed'); 
} 
else{$('#menu').removeClass('fixed').addClass('default');} 
}); 

如果有人想看看,鏈接http://www.vivianzoric.com/esiq/index.html

附:不要問我爲什麼它在IE7中分崩離析,我纔開始這個昨天:)

+0

'不要問我爲什麼在IE7中崩潰 - 我知道。因爲IE只是... IE – 2012-01-07 00:27:42

+0

你知道是否調用了'.scroll()'事件嗎? addClass()和removeClass()幾乎不可能工作(因爲他們所做的全部工作都是讀取和設置'.className'),所以很可能事件不起作用,scrollTop()沒有做你期望的事情,或者選擇者沒有做你期望的事情。您可能需要縮小哪些代碼行不正確。 – jfriend00 2012-01-07 00:28:17

+0

也可能你應該在'document.body'以外的東西上使用'.scrollTop()'。 – jfriend00 2012-01-07 00:30:07

回答

3

嘗試使用,window而不是document

$(window).scroll(function(){ }); 

但是要$(document).scrollTop(function()

而只是讓你知道,.scrollTop並在IE瀏覽器(IE8反正)工作

UPDATE

繼承人我現在在我的網站的一個使用完全相同的代碼

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

}); 
+0

謝謝,我會try.You可以檢查我提供的鏈接,所有瀏覽器,除IE7和8 – suludi 2012-01-07 00:36:05

+0

好,它的工作。請你解釋爲什麼這在IE8中工作,文件不? – suludi 2012-01-07 00:46:07

+0

我不是100%,但我會假設IE無法處理文檔上的'scroll'事件。因爲'window'覆蓋了所有東西,它總是會被調用。我再次不是100% – 2012-01-07 00:48:12

-1

問題上的工作中scrollTop()並不在IE

正常工作見http://api.jquery.com/scrollTop/

+1

只需鏈接到'scrollTop()'文檔是不夠的...請解釋這個答案。 – Sparky 2012-01-07 00:32:05

+0

'scrolltop' does not work in IE8 so so would think 9,not so about about 7 – 2012-01-07 00:35:25

+0

RTFM,guys;) 如果你不懶惰並完全閱讀文檔,你會看到非常有用的評論。 例如:http://api.jquery.com/scrollTop/#comment-133682921 – 2012-01-08 20:55:50