2009-05-03 24 views
0

我的網站上有幾個div - 在負載上,我希望其中一些隱藏,有些顯示。我躲在那些我不希望是這樣的:部門沒有正確隱藏在IE中

$(".divToHide").hide(); 

它運作良好,在Chrome,火狐,IE8的歌劇院......它不會在IE6(我還沒有在以前的版本測試過...) - 當我加載頁面時,所有的div都被正確隱藏。當我點擊使其中一個可見的鏈接時,它顯示正確。問題顯示,當我點擊不同的鏈接,應該隱藏第一個div並顯示另一個。第一個div的文本是隱藏的,但圖像保持並阻止新顯示的div。我很確定這是一個錯誤 - 當我放大或縮小頁面時,應該隱藏的div會突然消失 - 它們只在加載頁面時纔可見。

有沒有辦法解決它?

編輯:我使用jQuery V1.3.2

編輯:不幸的是使用addClass補充,指出display: none並未真正發揮CSS類的解決方案 - 這似乎是它沒有在第一,但問題仍然存在。

更新:我寫的js文件可以找到here,而html here。我的問題是,當你從一個組合到另一個,第一個形象停留在那裏,阻礙了下,即使它應該被隱藏(文字下方正確地更改)。當您嘗試放大/縮小頁面時錯誤消失。
我曾經使用$("#divId").hide()隱藏所有投資組合,但正如以下指出的,我現在使用$(".classToHide").hide()

UPDATE:問題在IE8上解決 - 我忘了包括標準模式聲明...但是,在IE6上它仍然是問題。

+1

爲什麼你使用一個ID來隱藏多個div?可能該錯誤與不正確的ID使用有關。 – Wolfr 2009-05-03 20:21:20

+1

如果您可以提供一個鏈接到您的來源,它可能會有助於解決您的問題。 – tester 2009-05-03 20:22:39

回答

2

只是一個想法:你不使用jQuery的舊的(預IE8)版本,是嗎?

編輯:沒有,grycz使用當前版本。

+0

我使用1.3.2 - 我認爲這是最新的一個,對不對? – 2009-05-03 20:15:46

+0

是的,1.3.2是最新的。這個理論非常重要。 8-) – RichieHindle 2009-05-03 20:18:42

0

你確定hide()函數調用甚至在頁面加載時被調用嗎?嘗試在該函數調用之前放置一個alert('hi'),並查看IE8中是否發生這種情況。

+0

是的 - 首先是因爲div放大後就立即消失。其次,因爲警報顯示:) – 2009-05-03 20:23:25

2

編輯:簡化使用toggleClass()

你可以嘗試做手工,像切換稱爲CSS類 「隱藏」。它可能是這個樣子:

function myToggle(element_id) 
{ 
    mydiv = $('#' + element_id); 
    mydiv.toggleClass("hidden");; 
} 

而且你的CSS文件將有:

.hidden 
{ 
    display:none; 
} 

我沒有測試過這一點,但是這是種解決辦法的我想你要考慮關於這是否確實是jQuery/IE8中的一個錯誤。

3

你躲在多個div的使用ID選擇?

先給那些div的一類 「divToHide」,然後使用:

$(".divToHide").hide(); 

也許IE8處理重複的ID以另一種方式比其他瀏覽器..

0

嘗試

$(」 #divToHide「)的CSS( '顯示:無');。