2009-05-03 8 views
0

私のウェブサイトにはdivがいくつかあります。それは、IE6で(私はまだ以前のバージョンでテストしていないいない...それはクロム、Firefoxの、IE8のオペラに適していますDivがIEに正しく隠れていない

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

:私はこのように私はしたくないものを隠しています...) - ページを読み込むと、すべてのdivが適切に非表示になります。それらの1つを表示させるリンクをクリックすると、正しく表示されます。問題は、最初のdivを非表示にして別のリンクを表示するはずの別のリンクをクリックすると表示されます。最初のdivのテキストは隠されていますが、画像はそのまま残り、新たに表示されたdivを遮ります。私はそれがバグだと確信しています。ページをズームインまたはズームアウトすると、非表示になるはずのdivが突然消えてしまいます。ページをロードすると表示されます。

周囲に道がありますか?

編集:私はjQueryのv1.3.2デベロッパーを使用してい

EDIT:残念ながらdisplay: noneが実際に動作していないと述べたCSSクラスを追加するaddClassを使用してのソリューション - それは最初にやったようにそれが見えましたしかし、問題はまだそこにあります。

更新:私が書いたjsファイルは、here、htmlのhereです。私が持っている問題は、あるポートフォリオから別のポートフォリオに移動すると、最初のポートフォリオのイメージが、そのポートフォリオが隠されるべきであるにもかかわらず(次のテキストが正しく変化する)、次のポートフォリオを妨害することにあります。ページを拡大/縮小しようとすると間違った表示が消えます。
$("#divId").hide()を使用してすべてのポートフォリオを非表示にしていましたが、以下で指摘したように、私は現在$(".classToHide").hide()を使用しています。

更新:問題はIE8で解決されました - 標準モード宣言を含めるのを忘れました...しかし、IE6ではまだ問題です。

+1

なぜ複数のdivを非表示にするためにIDを使用していますか?おそらくバグは不正なIDの使用に関連している可能性があります。 – Wolfr

+1

あなたのソースへのリンクを提供できれば、あなたの問題を解決するのに役立つかもしれません。 – tester

答えて

2

jQueryの旧バージョン(IE8以前)を使用していませんか?

編集:いいえ、gryczは現在のバージョンを使用しています。

+0

私は1.3.2を使用しています - これは最新のものだと思いますよね? –

+0

はい、1.3.2が最新です。その理論のためにはそれほど大変です。 8-) – RichieHindle

0

hide()関数呼び出しがページの読み込みでも呼び出されていますか?その関数呼び出しの直前にalert('hi')を置いて、IE8でそれが起こるかどうか確認してください。

+0

- まず、ズームイン/アウトするとdivが消えるからです。第二に、アラートが表示されるので: –

2

編集:あなたが呼ばれるCSSクラストグルのように、手動でそれをやってみてください

toggleClass()を使用して簡略化され、 "隠されています。"私はこれをテストしていませんが、これはあなたが考えてほしいと思い、私は想像する回避策の一種である

.hidden 
{ 
    display:none; 
} 

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

そして、あなたのCSSファイルだろう:それは次のようになります。これが本当にjQuery/IE8のバグであれば

+2

toggleClass( 'hidden');またはちょうどトグル()人 –

+0

ちょっと、toggleClassを忘れてしまった。私はあまりにも長い時間ゲームから出てきたと思います。 :-P私のポストで修正されました。 –

+0

訂正:動作しているように見えましたが、同じ問題が残っています...開始時に何かが隠されていても問題ありませんが、後で割り当てるとIEでは消えません。 –

3

IDセレクタを使用して複数のdivを非表示にしていますか?

+0

最初は複数のdivを隠していますが、選択的に表示したいと考えています。この場合、単にshow()/ hide()を呼び出すのではなく、クラスを追加/削除する方が良いでしょうか?私はそれが私の問題に役立つだろうとは思っていませんが(私は試しても構いませんが)それ以外の理由でより良いですか? –

+0

私がcssクラス "hidden"を追加/削除することによって得られる利点は、いつでも$( "。hidden")を使って隠しdivをすべて簡単に選択できることです。 –

+1

必要に応じて、IDとクラスを組み合わせて使用​​することもできます。そうすれば、起動時にすべてのdivを簡単に隠すことができます。 $( "。divsToHide")。addClass( "hidden"); $( "#widget4Div")を使用してdivsを選択的に再度表示するようにします。removeClass( "hidden"); $ –

0

は「(

$を試してみてください。..

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

たぶんIE8は、これらの他のブラウザよりも、別の方法で重複したIDを処理します。

のクラス "divToHide" これらのdiv要素に与えてみて、その後使用#divToHide ")。css( 'display:none');

関連する問題