この状況でブラウザー エンジンがどのように機能するかは非常に興味深いものです。なぜなら、IE、Firefox、Chrome でテストしたところ、すべて動作が異なるからです。例えば:
<style>
.parent{
width:100px;
}
.expand{
width:200px;
}
</style>
<div class="parent">
<div class="child"></div>
</div>
<input type="button" id="btn" />
<script>
//onready
$('#btn').click(function(){
$('.parent').toggleClass('expand');
alert($('.child').width());
});
</script>
問題はクロムにあります。理由はわかりませんが、 ('.child').width() は常に古い値ですが、親の新しい幅ではありません。幅の再計算はいつ、どのように機能しますか?