ドキュメントの準備ができたら、コンテンツ div 内でページを読み込みます。ただし、ユーザーがクリックするたびに、異なるページを同じコンテンツ div にロードするリンクもいくつかあります。他の何かを制御するためにコンテンツ div の高さを設定しようとしていますが、ページの読み込み時に div の高さが設定されると、新しいページを含むコンテンツ div の新しいサイズを取得できないようです…</ p>
たとえば、読み込まれたページは 6000px、ページ 1 は高さ 500px、ページ 2 は高さ 300px です。ページが読み込まれると、コンテンツ div は 6000px に設定されます。しかし、ページ 1 をクリックしてコンテンツ div にロードすると、コンテンツ自体の高さが 500px しかないにもかかわらず、コンテンツ div は 6000px に設定されたままになり、ページ 2 も同じです…</p>
html は次のとおりです。
<div id="select">
<div id="menu">
<ul>
<li><a class="load" href="javascript:void(0)" id="page1">page1</a></li>
<li><a class="load" href="javascript:void(0)" id="page2">page2</a></li>
</ul>
</div>
</div>
<div id="spacer"></div>
<div id="content"></div>
CSSは次のとおりです。
#select {
width: 215px;
top: 20px;
left: 10px;
position: absolute;
}
#spacer {
border-right:2px solid #000000;
left:10px;
width:215px;
position: absolute;
}
#content {
left: 227px;
top: 20px;
width: 703px;
padding: 0;
margin: 0;
position: absolute;
}
これが私のjqueryです:
$(document).ready(function() {
//Load content on page load
$("#content").html('<ul><li>Loading Content...</li></ul>')
.load("/content/" + "projects.php", null, function() {
contentHeight = $("#content").height();
selectHeight = $("#select").height();
$("#spacer").height(contentHeight + "px")
.css({"top": selectHeight + 40 + "px" });
});
//Load content on click
$(".load").click(function(){
loadName = $(this).attr("id");
$("#content").html('<ul><li>Loading Content...</li></ul>')
.load("/content/" + loadName + ".php", null, function(){
contentHeight = $("#content").height();
selectHeight = $("#select").height();
if(selectHeight < contentHeight) {
$("#spacer").css({"top": selectHeight + 40 + "px", "display": "block" })
.height(contentHeight + "px");
}else{
$("#spacer").css({"display": "none"});
return;
}
});
});
});