<script>
var href;
$(function(){
$("a.load").click(function (e) {
e.preventDefault();
href = this;
// cover all bookmarks
$("."+($(this).attr("class"))).css('border-bottom', 'solid 1px black');
$("."+($(this).attr("class"))).css('background-color', '#F5F5F5');
// uncover chosen bookmark
$("#"+($(this).attr("id"))).css('border-bottom', 'solid 2px white');
$("#"+($(this).attr("id"))).css('background-color', 'white');
$("#tempMain").load($(this).attr("href")); // load content to temp div
setTimeout(function() {resizeDivs();}, 500); // synchronize size of #main and #rightColumn
});
});
function resizeDivs() {
var heightNew = $("#tempMain").css("height");
$("#rightColumn").css('height',heightNew);
$("#main").css('height',heightNew);
// $('#main').load($(href).attr('href'));
$("#main").html($("#tempMain").html()); // is faster than loading again
}
</script>
我正在通过 jQuery 函数将子页面加载到我的主页的选定 div 中。为了同步主 div 和右列的高度,我使用了 jQuery 的.css()
方法。我希望调整大小看起来平滑,所以我将其解决为以下步骤:
1. 将子页面的内容加载到不可见的临时 div。
2. 计算那个 temp div 的高度。
3.将主div和右列的高度更改为该临时div的高度。
4.将子页面的内容加载到主div。
但是,我知道我目前这样做的方式非常蹩脚,因为我使用setTimeout()
的是等待内容加载的即兴创作——我尝试过使用$(document).ready
但没有运气。使用全局变量 ( var href
) 似乎也不合法,但传递函数this
运算符$("a.load").click
byapply()
也不起作用。
如何以“正确”的方式做到这一点?