2012-05-11 24 views
0

で計算高さをバブリングない:jQueryの1.7.1jQueryの非表示と表示方法は、使用してIE8

私が隠れたときに正しく、その高さを計算するのに失敗したコンテナのdivを持ってどこが示す/ IE8で問題を見ているとhide()とshow()を使用して子要素(UL)を作成します。

このコンテナdivは、モジュールのコンテンツをラップするモジュール本体です。私たちのモジュールは、モジュール内の何かがモジュールの高さ/幅を調整する必要があるたびに呼び出されるリフレッシュメソッドを持つ必要があります。コンテナdivの高さをつかむことでこれを行いますが、IEの内側のセクションを展開または折りたたむとき、コンテナdivはその高さを再計算しません。

すべてのhide()show()を.addClass( "display-none")/ .removeClass( "display-none")に置き換えているかどうかを確認しました(ここでは.display-none {display:none; }この問題を修正しました。しかし、私はまだ表示と非表示、いくつかのルールやIEの問題/私が知らないハックを使用することができますCSSソリューションを期待していた。

質問したいのはなぜですか?

はここで非表示と表示がされている別名

  1. 私は隠し、上映しています項目は、ネストされた番号なしリストから構成されて家建てツリーウィジェット内からノードのグループである、いくつかの詳細を読みます。秒に適用される。
  2. ツリーノード内の要素を非表示にして表示する別のアクションがありますが、このアクションによってコンテナdivの高さが正しく再計算されます。
  3. ツリーをラップする他のdivは正しく再計算されますが、何らかの理由でコンテナdivでバブリングが停止します。

コードサンプルまたはhtmlサンプルが役立つ場合は、私もそれを提供することができますが、実際に誰かが私が遭遇したことのより一般的な概念があるかどうかを見たいと思っています。ここで

は、私は最終的にこれに対する解決策はまだ、なぜ突き止めていない見つけたコンテナ

.module > div > div > * { 
    word-spacing: normal; 
} 

.module-content-data { 
    max-width: 962px; 
    padding: 10px 10px 0; 
} 

* { 
    margin: 0; 
} 

.module { 
    word-spacing: -1em; 
} 

Inherited fromdiv.main 
.main { 
    word-spacing: -1em; 
} 

Inherited frombody 
body { 
    color: #333333; 
    font-family: Arial,Calibri,Verdana,Helvetica,Sans-Serif; 
    font-size: 11px; 
} 

答えて

0

のスタイルがあります。明らかにIE8 $ .hide()と$ .showでは、計算された高さが正しく設定されないことがあります。しかし、代わりにaddClass( "display-none")呼び出しを使用し、高さを正しく計算するようにメソッドを変更しました。私はこれが似たような問題を持つ他の人たちに役立つことを願っています

更新日: この同じ問題の別のページでは、上記の「修正」は効果がありませんでした。だからまだ分かりません。もっと知ると更新されます。