私はこの小さなスクリプトを持っています:
var $totalHeight;
$(document).ready(function() {
$totalHeight = $('#sidebar-container').innerHeight();
$('.sidebar-heading').each(function() {
$totalHeight = ($totalHeight - $(this).outerHeight());
});
$('.sidebar-contents').each(function() {
if ($(this).hasClass('active')) {
$(this).css('height',$totalHeight);
}
});
$('.sidebar-heading').click(function() {
$('.sidebar-contents').slideUp().removeClass('active').addClass('inactive')/*.css('height','').removeAttr('style')*/;
$('.sidebar-heading').removeClass('active')/*.next().slideUp()*/;
$(this).addClass('active').next().addClass('active').removeClass('inactive').css('height',$totalHeight).slideDown();
});
});
それが何をすべきかは明らかだと確信しています。
私の問題は次のとおりです。最初のクリックで、その兄弟('.sidebar-heading')
に必要なものが適用されません。$totalHeight
次のクリック、します。私は何を間違っていますか?
このコードが動作しているドラフト HTML があります。上記の部分をコメントアウトして、バグがどこにあるかを確認しましたが、とにかくそれを理解できませんでした.