2

デモンストレーションについては、次の jsfiddle を参照してください。

http://jsfiddle.net/Drb8s/

非表示の親内にある要素で jQuery show() を使用すると、問題が発生するようです。(その後、親を表示します)。子要素が元々 display: table である場合、show() を呼び出すと、display: block に戻りますが、これは正しくありません。

フィドルでコンソールを使用してのみこれを複製できますが、私のアプリではコードを介してこの問題が発生しています。

HTML:

<div class="outer">
    <div class="inner">Inner</div>
</div>

CSS:

.outer {
    display: none;
}
.inner {
    display: table;
}​

JS:

$('.inner').hide();
// $('.inner').show();​​​  // this works in jsfiddle (but not in my app, or run through console)

編集:私が使用している回避策として、.css('display', 'table')誰かがこれの実際の原因を知っているかどうか疑問に思っていました.

4

1 に答える 1

1

.show表示/非表示の.hide方法が残忍です。特定の非伝統的なスタイルが必要な場合は、それらを使用できません。

$(".inner").data('oldstyle', $(".inner").css('display')).css('display', 'none');
...
$(".inner").css('display', $(".inner").data('oldstyle'));
于 2012-12-20T05:38:02.950 に答える