私は".hidden"
クラスを持ち、リアルタイムでDOM要素を構築します。だから私はのような簡単なコードを取得する:要素:first-child force reevaluate
...
<div class="hidden">1</div>
<div class="hidden">2</div>
<div class="hidden">3</div>
...
私のCSSの定義は、単純な以上のものです:
.hidden {
display: none;
}
.hidden:first-child {
display: block;
}
すべてが良い、誰もが幸せです。今私が$('.hidden:first-child').remove()
のようなものを削除すると、次の要素は表示されません。デベロッパーコンソールでDOMノードをクリックしたときに表示されるようです(ctrl + shift + i in chrome)。
ブラウザがCSSルールを評価するように強制する方法はありますか?
更新 これはjsFiddle test caseです。ボタンをクリックすると「0」が表示され、別の番号はなく、「1」、「2」などとなります。
結論: 不思議なことに、私は削除する前にフェードアウト(400)を取り外しただし場合は()それは動作します。
あなたは、テストケースを再現することはできますか? DOMが変わるたびに、ブラウザはすでにCSSを再評価しているはずです。 – BoltClock
@Sven Bieder: 'first-child'はその内容ではなく要素を見ているので、それは重要ではありません。最初の '.hidden'要素はまだ最初の子です(これらのすべての要素がクラスを持っていると仮定します)。これを削除すると、2番目の要素が最初の要素になります。 – BoltClock
http://jsfiddle.net/umt3q/はうまく動作します – jAndy